Efficient Usage
大多数介绍eclipse高效操作技巧的文章都是在介绍快捷键,本文也不例外!但如果仅仅只是快捷键列表,那大家直接google或者看eclipse帮助文档就够了!本文希望先帮大家理清各种概念,然后通过一些主要的快捷键操作场景,帮大多数人把之前断裂的快捷键操作串起来,以达到一种接近全键盘的行云流水般的操作境界!
基本概念
Perspective
Perspective翻译过来是“透视图”,其实就是按照一定目的选择和排列好的一组视图(view)的集合。例如Eclipse workbench默认处于C/C++ Perspective
,它的布局如下图:
上面是菜单栏和工具栏,下面是由四部分组成的工作区域。最左边是Project Explorer
视图,显示当前workspace中的所有project,通过它可以浏览每个project的目录树。中间的Editor
视图是我们浏览、编辑代码的地方。Editor
的右面和下面是一些辅助视图的集合窗口,例如常用的outline视图、console视图以及各种搜索结果视图等等都在这里,你可以根据习惯选择将哪些视图放在右面或者下面。C/C++ Perspective
如此设置和排布目的是为了尽可能方便的进行代码开发。
除了C/C++ Perspective
,eclipse还定义了Debug Perspective
、Git Perspective
、Planning Perspective
等等,每种perspective所选择的视图和排布都是为了不同的目的。例如在Debug Perspective
下就没有Project Explorer
视图,而多了Debug
和Variable
视图,而且Editor
视图所占的区域也小很多。如此规划就是为了用户可以方便高效地进行debug。
不同perspective之间进行切换的快捷键是Ctrl + F8
。按住Ctrl
后每敲一次F8
,光标会移到下一个perspective;按住Ctrl + Shift
后每敲一次F8
光标会移到前一个perspective。如下图所示,通过快捷键在C/C++ Perspective
和Debug Perspective
之间切换。
View
通过前面的介绍,我们知道一个perspective是由一组view组成。如论在哪个perspective下,我们都经常需要在不同的view之间切换焦点。例如对于我们最常处于的C/C++ Perspective
,我们在代码开发的时候经常需要从正在编辑代码的Editor
视图跳转到Project Explorer
视图去增加一个目录或者文件。再比如搜索了某一个函数的调用关系后需要从Editor
视图跳转到下方的Call Hierarchy
视图选择某一调用函数。
切换视图的快捷键是Ctrl + F7
。按住Ctrl
后每敲一次F7
,光标会移到下一个视图;按住Ctrl + Shift
后每敲一次F7
光标会移到前一个视图。
如下图所示,我们通过快捷键从Editor
视图跳转到Project Explorer
视图下,在test目录下创建Test.cpp文件。
由于经常需要直接跳回Editor
视图,所以有一个专门的快捷键F12
用于帮助你从任何视图下直接跳回到Editor
视图。
如果说切换perspective的快捷键用的场景并不多,那么切换视图的快捷键使用场景那可是相当之多。很多人在Editor
区域将快捷键使用的很好,但一旦要切换视图就必须去抓鼠标,掌握了这个快捷键基本上就可以让很多人直接过渡到全键盘了!
Quick View
在前面的介绍中我们说view一般在perspective下被安排好了位置,从一个view切换到另一个view需要转移焦点。但是eclipse为了可以更加快捷的操作,为很多常用的view提供了quick view。所谓quick view是指在当前view上以一个浮现式菜单弹出另一个view的常用功能,你可以在当前view上不转移焦点就直接操作另一个view,避免了不少键盘操作。熟练掌握quick view可以让你的键盘操作效率更高,更加有行云流水的感觉。
例如前面的例子中我们从Editor
视图切换到Project Explorer
视图下创建了一个文件。其实我们可以直接在Editor
视图下通过Alt + Shift + N
调出quick view完成文件创建。
上面介绍的Alt + Shift + N
会被经常用到,因为它除了可以快速创建文件,还可以快速创建工程、目录等。除此之外还有如下的quick view也非常有用:
-
常用视图集(Quick Views)
用
Alt + Shift + W
可以直接以quick view的方式显示常用的视图集合,可以通过上下方向键直接选择想要跳转到的目标视图。下例中我们通过这种快捷方式直接跳转到
C/C++ Projects
视图。 -
文件大纲(Outline View)
文件大纲视图一般位于
C/C++ Perspective
的最右侧,通过该视图我们可以看到当前文件的代码大纲,通过它可以直接跳到当前文件的任意符号处。在
Editor
视图下我们可以通过Ctrl + O
直接调出Outline
的quick view,然后通过搜索或者上下键选择来跳转到本文件内的某一符号处。正是因为可以如此方便地调出quick outline,所以我一般会把Editor
视图右边的辅助视图集窗口最小化以扩大代码区的面积。 -
代码生成视图(Quick Implementation)
用
Alt + Shift + S
可以调出代码生成视图。利用该视图可以快捷地为代码添加头文件、格式化代码风格、自动为类成员生成get/set方法等。如下使用该快捷视图为类的成员函数自动在cpp文件中生成实现原型。
-
继承关系(Hierarchy View)
大多数eclipse用户都知道选中类名然后敲
F4
,继承关系视图会出现在Editor
底下的的视图集窗口里。然后在该视图下,可以看类的继承关系和接口的覆写关系。从上面示例中可以看到,从
Hierarchy View
返回Editor
需要切换视图焦点。但是如果用Ctrl + T
调出quick hierarchy,则可以在浏览完继承关系后直接返回到Editor
的对应位置上。如下所示:
Quick hierarchy是我最喜欢的feature,它可以让类的继承关系跳转变得非常快捷。而且当你在一个虚方法的签名上调出quick hierarchy,只会显示该接口被覆写的类层次。所以让我们记住这个快捷键
Ctrl + T
。
Navigate
如下是一些比较常用的导航快捷键。
-
文件导航
-
Ctrl + Shift + R
: 跳转到指定文件。输入文件名时可以用通配符。 -
Ctrl + F6
,Ctrl + Shift + F6
:跳转到前一个或者后一个已经打开过的文件。 -
Ctrl + E
:以quick view的方式列出已经打开过的所有文件列表,可以通过搜索或者上下键选择跳转到的目标文件。 -
Ctrl + Tab
:在类的头文件和源文件之间互相跳转。
-
-
符号导航
-
Ctrl + Shift + T
:跳转到指定符号。可以是类名、全局变量、宏等等;输入符号名时可以使用通配符。 -
F3
:跳转到定义。 -
Alt + ←
:跳转到前一个编辑的页面。 -
Alt + →
:跳转到后一个编辑的页面。 -
Ctrl + Q
:跳转到最后编辑过的页面符号处。 -
Ctrl + L
:跳转到指定行。
-
Search
Eclipse主要的搜索快捷键如下:
-
Ctrl + Shift + G
:查找对选中符号的所有引用。 -
Ctrl + Shift + H
:查找对选中函数或者变量的所有调用点,显示出调用层次。 -
Ctrl + F
:本文件内搜索,可以通过Ctrl + k
和Ctrl + Shift + k
在所有搜索结果中上下跳转。 -
Ctrl + H
:工程内全局搜索。弹出的对话框里面的C/C++ Search
只是在所有代码文件中搜索,而File Search
则是在工程内所有类型文件中搜索。
Edit
对于高效编辑来说,有太多的快捷键可说了,我们挑一些重要的略作介绍。
首先你要掌握最基本的通用快捷键:
-
Ctrl + C
:拷贝 -
Ctrl + X
:剪贴 -
Ctrl + V
:粘贴 -
Ctrl + ←
:光标跳过前一符号 -
Ctrl + →
:光标跳过后一符号 -
Shift + ←
:选中前一个字符 -
Shift + →
:选中后一个字符 -
Shift + ↑
:从光标往上选择一行 -
Shift + ↓
:从光标往下选择一行 -
Ctrl + Shift + ←
:选中前一个符号 -
Ctrl + Shift + →
:选中后一个符号
其次你要掌握eclipse自身的一些编辑快捷键:
-
Ctrl + D
:删除当前行 -
Ctrl + /
:注释当前行 -
Alt + ↑
:将当前行向上移动 -
Alt + ↓
:将当前行向下移动 -
Ctrl + Alt + ↑
:将当前行向上复制 -
Ctrl + Alt + ↓
:将当前行向下复制
如下示例中选择了几行代码,然后使用Ctrl + Alt + ↓
向下复制了选中行。
-
Alt + /
:自动提示、补全符号,包括自定义的快捷代码块。如下输入switch
后使用Alt + /
,eclipse自动补全switch代码块。自动补全还包括用户自定义的快捷代码块。如前面介绍全局配置的时候我们添加了
cn
的快捷代码块,如下输入cn
后再敲Alt + /
,它帮我们自动补全为“ClassName::”。
另外还有如下几个非常方便的快捷键:
-
Ctrl + Shift + F
:格式化选中的代码 -
Ctrl + Shift + X
:选中的代码转为全小写 -
Ctrl + Shift + Y
:选中的代码转为全大写 -
Alt + Shift + A
:进入或者退出列编辑模式
列编辑模式有时会很有用,如下图所示:
除了上述快捷键外,还有一些是专门针对C/C++语言特征的。
-
Ctrl + Shift + N
:自动include光标所在处符号对应的头文件。
-
Ctrl + =
:自动宏展开提示。
-
Alt + Shift + R
:自动重命名Eclipse针对C++的自动化重构支持的并不多,但是最常用的重命名
Alt + Shift + R
做得真心不错。如果你按照eclipse全局规则中约束的方式命名类和文件(前面全局配置中讲过如何修改规则),例如对于类名“ThreadPool”,对应的头文件命名为“ThreadPool.h”,源文件命名“ThreadPool.cpp”,测试文件名为“TestThreadPool.cpp”,那么对类进行重命名,eclipse会自动同步修改类的头文件、源文件和测试文件以及所有的#include
中对应的路径名。
这里再补充一下,如果你想调整头文件或者目录的位置,最好使用
Project Explorer
视图中右键菜单里面的Move
选项,这样所有更改路径的头文件的#include
路径会一起发生变化。
Others
本节介绍了非常多的快捷键,如果忘记了,可以输入Ctrl + Shift + L
调出快捷键列表查看,并可以直接选择执行。
最后一个大杀器:Ctrl + 3
,使用它可以调用quick access
对任何属性、视图、命令进行查找、执行。
如下我们输入Ctrl + 3
转到quick access
,然后通过输入“font”查找并调出修改字体的全局配置框:
下例中我们通过quick access
查找添加头文件的命令,然后运行其为我们自动添加了缺失的头文件:
本节的所有介绍就到这里,所提到的快捷键是我挑选出来最常使用的一部分,相信熟练掌握这些足以让你的编码效率得到很大提高。补充说明一下,上述所有快捷键适合linux和windows系统,mac下得要做一些调整,具体查看mac版本eclipse的快捷键设置。
Conclusion
本文总结了个人使用eclipse CDT进行C++代码开发的一些经验,包括eclipse全局配置、工程配置以及常用的高效操作技巧。希望本文最终可以帮助到大家,使得每个人都可以借助eclipse这个强大的IDE去更好地使用C++这门强大的语言解决问题。