VS.NET vs. Eclipse : 常用快捷键及调试比较

快捷捷:

<td valign="top" width="180">
  Visual Studio
</td>

<td valign="top" width="160">
  Eclipse
</td>

<td valign="top" width="461">
  操作
</td>
<td valign="top" width="180">
  CTRL+E+C
</td>

<td valign="top" width="160">
  CTRL+/
</td>

<td valign="top" width="461">
  注释,注释选中的代码(如果没有选中任何行,则默认注释当前行代码)
</td>
<td valign="top" width="180">
  CTRL+E+U
</td>

<td valign="top" width="160">
  CTRL+/(再按)
</td>

<td valign="top" width="461">
  取消注释,取消注释选中的代码
</td>
<td valign="top" width="180">
  CTRL+E+D
</td>

<td valign="top" width="160">
  CTRL+SHIFT+F
</td>

<td valign="top" width="461">
  格式化整个文档
</td>
<td valign="top" width="180">
  CTRL+E+F
</td>

<td valign="top" width="160">
</td>

<td valign="top" width="461">
  格化式选中代码
</td>
<td valign="top" width="180">
  CTRL+J
</td>

<td valign="top" width="160">
  ALT+/
</td>

<td valign="top" width="461">
  列出成员
</td>
<td valign="top" width="180">
  CTRL + SHIFT + 空格
</td>

<td valign="top" width="160">
  ALT+/
</td>

<td valign="top" width="461">
  提示鼠标所在方法的参数类型和个数
</td>
<td valign="top" width="180">
  CTRL+M+L
</td>

<td rowspan="2" valign="top" width="160">
  CTRL+O
</td>

<td rowspan="2" valign="top" width="461">
  快速OutLine
</td>
<td valign="top" width="180">
  CTRL+M+O
</td>
<td valign="top" width="180">
  CTRL+.
</td>

<td valign="top" width="160">
  不适用
</td>

<td valign="top" width="461">
  自动using命名空间
</td>
<td valign="top" width="180">
  SHIFT+ALT+ENTER
</td>

<td valign="top" width="160">
</td>

<td valign="top" width="461">
  全屏显示
</td>
<td valign="top" width="180">
  CTRL+K+S
</td>

<td valign="top" width="160">
</td>

<td valign="top" width="461">
  外侧代码,可以加region预处理或者try...catch...等
</td>
<td valign="top" width="180">
</td>

<td valign="top" width="160">
</td>

<td valign="top" width="461">
</td>
<td valign="top" width="180">
</td>

<td valign="top" width="160">
</td>

<td valign="top" width="461">
</td>
<td valign="top" width="180">
  F12
</td>

<td valign="top" width="160">
  F3
</td>

<td valign="top" width="461">
  转到定义
</td>
<td valign="top" width="180">
  CTRL + TAB
</td>

<td valign="top" width="160">
  CTRL+E
</td>

<td valign="top" width="461">
  快速切换活动窗口
</td>
<td valign="top" width="180">
  CTRL + SHIFT + F
</td>

<td valign="top" width="160">
  CTRL+F
</td>

<td valign="top" width="461">
  显示在文件中查找和替换对话框
</td>
<td valign="top" width="180">
  SHIFT+ALT+ENTER
</td>

<td valign="top" width="160">
  CTRL+M
</td>

<td valign="top" width="461">
  全屏无干扰模式
</td>
<td valign="top" width="180">
  CTRL+(→或←)
</td>

<td valign="top" width="160">
  同VS
</td>

<td valign="top" width="461">
  以单词为单位进行左,右跳转
</td>
<td valign="top" width="180">
  SHIFT+CTRL+(↑或↓)
</td>

<td valign="top" width="160">
  暂无
</td>

<td valign="top" width="461">
  跳转到该单词上次或下次出现的地方
</td>
<td valign="top" width="180">
  CTRL+[SHIFT]+]
</td>

<td valign="top" width="160">
  CTRL+SHIFT+P
</td>

<td valign="top" width="461">
  匹配括号移动(包括(),{},[],””)
</td>
<td valign="top" width="180">
  SHIFT+F12(查找所有引用)
</td>

<td valign="top" width="160">
  CTRL+T
</td>

<td valign="top" width="461">
  转到接口的实现类
</td>
<td valign="top" width="180">
  CTRL+-
</td>

<td valign="top" width="160">
</td>

<td valign="top" width="461">
  返回到上次编辑的位置
</td>
<td valign="top" width="180">
  CTRL+,
</td>

<td valign="top" width="160">
</td>

<td valign="top" width="461">
  定位到
</td>
<td valign="top" width="180">
</td>

<td valign="top" width="160">
</td>

<td valign="top" width="461">
</td>
<td valign="top" width="180">
</td>

<td valign="top" width="160">
</td>

<td valign="top" width="461">
</td>
<td valign="top" width="180">
  F5
</td>

<td valign="top" width="160">
  F11
</td>

<td valign="top" width="461">
  调试运行
</td>
<td valign="top" width="180">
  CTRL+F5
</td>

<td valign="top" width="160">
  CTRL+F11
</td>

<td valign="top" width="461">
  非调试运行
</td>
<td valign="top" width="180">
  F6
</td>

<td valign="top" width="160">
  不适用
</td>

<td valign="top" width="461">
  编译整个解决方案
</td>
<td valign="top" width="180">
  SHIFT+F6
</td>

<td valign="top" width="160">
  不适用
</td>

<td valign="top" width="461">
  编译当前选择的工程
</td>
<td valign="top" width="180">
  SHIFT+F5
</td>

<td valign="top" width="160">
  CTRL+F2
</td>

<td valign="top" width="461">
  停止调试
</td>
<td valign="top" width="180">
  F9
</td>

<td valign="top" width="160">
  CTRL+SHIFT+B(break)
</td>

<td valign="top" width="461">
  插入或取消断点
</td>
<td valign="top" width="180">
  CTRL+SHIFT+F9
</td>

<td valign="top" width="160">
  暂无
</td>

<td valign="top" width="461">
  取消所有断点
</td>
<td valign="top" width="180">
  F10
</td>

<td valign="top" width="160">
  F6
</td>

<td valign="top" width="461">
  单步执行,但直接执行函数中调用部分而不分步
</td>
<td valign="top" width="180">
  F11
</td>

<td valign="top" width="160">
  F5
</td>

<td valign="top" width="461">
  单步执行,并且单步执行函数中调用部分
</td>
<td valign="top" width="180">
  SHIFT+F11
</td>

<td valign="top" width="160">
  F7(继续运行为F8)
</td>

<td valign="top" width="461">
  执行当前函数剩余部分代码
</td>
<td valign="top" width="180">
  CTRL+F10
</td>

<td valign="top" width="160">
  CTRL+R
</td>

<td valign="top" width="461">
  运行到光标处
</td>
编辑
导航
调试

另外,Eclipse有一些自己独特的快捷键,也非常好用,如下:

CTRL+SHIFT+R(resource):快速打开资源

ALT+SHIFT+R(rename):快速重命名方法和属性

CTRL+.和CTRL+1:定位到错误及快速修改

 

调试:

1,断点

说起调试,首先肯定是设置断点了,所以断点是所有调试的基础。当然断点又分很多种不同的类型,比较常用的就是条件断点和断点过滤器了。首先来看普通断点吧。

1)普通断点

设置断点,VS为F9,而Eclipse为CTRL+SHIFT+B(break)


命中断点后,接下来我们可以选择F10单步运行,F11进入调用函数内部,或Shift+F11从调用函数返回到函数调用处。而对于Eclipse,单步运行是F6,进入调用函数内部是F5,返回到函数调用处是F7。

2)条件断点

条件断点一般用在for循环中,如下图:

  1. 断点过滤器

断点过滤一般用在调试多线程程序的时候,能过断点过滤我们可以指定调试哪个线程,如下图:

2,运行到指针

这个调试技巧也非常有用,当我们在调试一个很长的方法,我们不关心中间的逻辑,我希望断点直接运行到某一行的时候,这个技巧就派上用场了。如下图。

注意,这个技巧在VS中是快捷键Ctrl+F10,而在Eclipse中是Ctrl+R

3,即时窗口

这个也用得非常多,它即可以查看变量的值,也可以直接在里边写代码执行。如下图。

 

不过,Eclipse里的即时窗口没有VS的好用。

4,附加进程

附加进程有两个好处,第一,提高调试效率,我一般习惯先以非调试模式运行(VS中快捷键是CTRL+F5),此时页面已经打开,等到想调试的时候就选择附加进程进行调试,不想调试的时候我停止调试就行了,这样比按F5要快很多。第二个好处是,当程序已经发布了,本地也有源代码的情况下,那么就可以直接附加到进程就可以调试了。下面是图示。

注:Eclipse中我还不知道怎么实现这个功能,希望知道的朋友补充一下。

5,数据提示

当我们在调式一段程序,需要反复查看某个变量的值的时候,我们可以把这个变量钉在屏幕上,而且,我们还可以临时去修改变量的值,这对我们去模拟一些BUG的时候非常有用。

注:Eclipse中还不知道怎么弄,好像在变量声明的地方无法设置断点,希望熟悉的朋友补充一下。

 

来源:java与.net比较学习系列(1) 开发环境和常用调试技巧