Effective Eclipse CDT(三)

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 PerspectiveGit PerspectivePlanning Perspective等等,每种perspective所选择的视图和排布都是为了不同的目的。例如在Debug Perspective下就没有Project Explorer视图,而多了DebugVariable视图,而且Editor视图所占的区域也小很多。如此规划就是为了用户可以方便高效地进行debug。

不同perspective之间进行切换的快捷键是Ctrl + F8。按住Ctrl后每敲一次F8,光标会移到下一个perspective;按住Ctrl + Shift后每敲一次F8光标会移到前一个perspective。如下图所示,通过快捷键在C/C++ PerspectiveDebug 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 + F6Ctrl + 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 + kCtrl + 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++这门强大的语言解决问题。

Effective Eclipse CDT (一)
Effective Eclipse CDT (三)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容