工欲善其事,可能会有用的Clion技巧

半年前我开始用 Clion,顺带着写了一篇心得记录使用 CLion 的技巧,没想到发布在简书后浏览量还是挺高的,居然还获得了人生中第一笔真正的打赏,感动之余也决定重新整理一下,加上这半年来的实际使用体验。这篇文章会通过 Mac 版进行介绍(除了个别按键以外,差别不大),添加了演示动画。

关于授权

JetBrains 全家的产品几乎都支持 student license,所有产品!所有产品!所有产品!重要的事情要说三遍一次授权时间为一年,到期需要重新验证 edu 邮箱,建议学生党们通过该方式激活,戳这里申请,其他有能力的用户可以购买授权支持正版。

快捷键配置

Clion 的默认快捷键风格是 Visual Studio,Windows 用户就不用改了, Mac 上一般用 ⌘ 代替 control,在 Setting—>Keymap 里修改成 Xcode 风格即可,Clion 默认提供8种风格,也支持用户 DIY。

设置快捷键风格

由于我经常使用 Sublime Text,希望在一些共同的功能能够保持相同的快捷键,所以我自己 DIY 了一些:

  1. Add selection for Next Occurrence (多重选择) —> ⌘ + D
  2. Unselect Occurrence (取消选择) —> ⌘ + U
  3. Build (编译) —> ⌘ + B
  4. Select Line at Caret (选中光标所在行) —> ⌘ + L

代码提示的匹配模式

Clion 代码提示和补充的匹配有 All, None, First Letter 三种方式:

模式 说明 推荐程度
All 关键词完全匹配
First Letter 第一个字符完全匹配 👌
None 不区分大小写、首字符 👊

All 需要关键词完全一致(大小写、字符顺序)才会提示,First Letter 只要关键词的第一个字母(区分大小写)或下标匹配就会出现提示,而 None 则是匹配要求最为宽松的一种,不区分大小写、不要求首字匹配,我个人比较喜欢这种,懒人福音~~

自动匹配模式

智能提示

官方给出的名字是 intention actions,这个和 auto-complete 不同,会根据你写的代码给出即时提示,比如调用某个函数漏写了一个参数。厉害的是不仅提示这些问题或建议,同时还提供解决方案,点击左侧的小灯泡或者按 ⌥ + Enter(Windows 下是 Alt + Enter,快捷键参考自己的配置)会显示这些提示确认后即可应用。


智能提示

快速修复

这个功能作用和智能提示有点类似,相比之下区别在于快速修复专注于一些容易出现的小错误,比如忘记;, 判断中用=等很容易出现的小错误,Clion 也会显示小灯泡引起你的注意,快捷键和智能提示一样,按下 ⌥ + ⏎ 就可以快速修复。

快速修复

快速注释

注释功能是我们在敲代码过程中的高频操作之一,和 Sublime Text 一样,按 ⌘ + / 会以行形式注释光标所在的代码行,按 ⌘ +⇧ + / 则会以代码块的形式完成注释。

另外,在注释的内容里加上 todo,就会自动被 Clion 记作待处理的代码,当你要提交代码时 Clion 会提示你检查 todo 的内容:


todo

代码生成

这个功能会在特定情境下帮你自动生成一些代码,比如类的构造函数和析构函数等,在需要生成的地方按⌘ + N 即可,这个功能我最常用到的使用场景是在头文件中声明函数后转到主文件中进行定义:

生成代码

另外你还可以⌘ + J 插入完整的代码块,默认只有 for, iter, itit,也可以自己在Setting—>Live Templates 里添加自定义的代码块,比如我创建了一个main()函数的代码块,输入 main就会在提示框里出现我们添加的代码块,这个真的是很方便。

插入代码块

最后还有一个 surround with 的功能,选中任意的代码块按 ⌥ + ⌘ + T 就可以选择给这些代码包裹上 if for 等。

代码包裹

巧用搜索功能

搜索又是一个非常实用的功能, Clion 的搜索功能非常强大。

基本搜索

对于基本的搜索(也是最常用到的), ⌘ + F 相信大家都已经非常熟悉了,⇧ + ⌘ + F 则可以在整个工程中进行搜索;按 ⌥ + F7 可以找到某个类、变量、函数等在文中被使用到的的地方;


cl_QST_find_usages.png

项目导航

对于一个大的项目,很多时候需要理清它的层次结构,Clion 为我们提供了项目内文件、类等的导航搜索:

⌘ + O 通过类的名字进行搜索;
⇧ + ⌘ + O 通过文件名进行搜索;
⌥ + ⌘ + O 通过符号名进行搜索;
⌘ + B 搜索声明;
⌘ + U 基类/函数搜索;

功能搜索

这个真的是厉害啊,按 ⇧ + ⌘ + A 然后输入你想用到的功能,然后选中就可以了,尤其是当快捷键太多记不住的时候真的是很实用啊。


功能搜索

全局搜索
当你不知道你要搜索的东西是属于上面哪一类的时候,就试试 Search Everywhere,只需要连按两下 ⇧,就会呼出 Search Everywhere 的搜索框。

全局搜索

调试运行

说实话现在很多编辑器在代码编辑上的功能和体验都不输 IDE 了,但是在项目调试和运行上 IDE 还是有着不小的优势,这也是很多人在大的项目里选择 IDE 而不是代码编辑器的原因。

首先你可以在 Run | Edit Configurations 里面配置调试运行的选项,如果你希望在编译之前或者运行之后运行一段脚本,你可以自己添加这些额外的配置。

在 OS X 上,Clion 支持 GDB 和 LLDB ,建议使用 LLDB,调试的过程和很多 IDE 类似,你可以创建断点,按右上方的小虫或者⌥ + ⌘ + U 进行调试,你可以逐行、逐语句进行调试,Clion 很人性化的一点是调试时变量的值会直接以斜体显示在右侧(这点施加分项啊),而且 Clion 支持调试过程中更改变量的值(在调试输出框内选择相应变量右击 set value 或者按 F2)。

调试界面

ps. Clion 的调试速度并不是很快,尤其是在 Windows 平台体验不如 Visual Studio。

版本控制

Clion 支持 Git, mercurial 等常见的版本控制系统,针对 Github 有特定的设置选项,可以在(Preferences -> Version Control 里进行设置),以 Git 为例,可视化的形式涵盖了所有常用的功能:

版本控制

限于篇幅,不能把所有的 Git 操作记录下来,相信熟悉 Git 操作的你很快就能上手。

最后

以上提到的技巧是我平时用 Clion 时的一些心得,使用习惯因人而异,所谓的技巧只有频繁的使用才有意义,我不建议一开始就去记住那些狂拽酷炫吊炸天的快捷键。如果你之前有使用过 JetBrains 家其他的产品,那么我相信你很快就能上手 Clion,如果你是第一次使用他家的产品,那么这篇文章可能会对你有一点用处。

如果你需要全面了解 Clion 的功能,可以访问 JetBrains 的官方指南,本文也有部分内容参考了这个指南。

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

推荐阅读更多精彩内容

  • 本文已更新,点击访问 最近学习 C++,首选的代码编辑器是 Sublime Text,这款轻便、颜值高、功能强大的...
    链球选手阅读 97,609评论 27 33
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,448评论 25 707
  • 2017.09.15 周五 多云 晚上我和儿子聊天,儿子突然要告诉我一件事情,还要求我不能生气。我心里只打小鼓,这...
    戴骁勇阅读 447评论 0 1
  • 一叶知秋落海堤,萧瑟昏夕,渫雨凄迷。天开阴霁梦依稀,鸿雁轻啼,望断云低。 残热犹威汗染衣,茶饮神移...
    海1619阅读 242评论 2 7
  • 再有一个礼拜左右就到了立秋时节了,我不确定,或许是两个礼拜。这太阳依旧晚睡早起,霸占大部分的夜。约四五点钟,天色就...
    简书拾荒者阅读 271评论 0 1