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

半年前我開始用 Clion,順帶著寫了一篇心得記錄使用 CLion 的技巧,沒想到發(fā)布在簡書后瀏覽量還是挺高的,居然還獲得了人生中第一筆真正的打賞,感動之余也決定重新整理一下,加上這半年來的實際使用體驗。這篇文章會通過 Mac 版進(jìn)行介紹(除了個別按鍵以外,差別不大),添加了演示動畫。

關(guān)于授權(quán)

JetBrains 全家的產(chǎn)品幾乎都支持 student license,所有產(chǎn)品!所有產(chǎn)品!所有產(chǎn)品!重要的事情要說三遍一次授權(quán)時間為一年,到期需要重新驗證 edu 郵箱,建議學(xué)生黨們通過該方式激活,戳這里申請,其他有能力的用戶可以購買授權(quán)支持正版。

快捷鍵配置

Clion 的默認(rèn)快捷鍵風(fēng)格是 Visual Studio,Windows 用戶就不用改了, Mac 上一般用 ? 代替 control,在 Setting—>Keymap 里修改成 Xcode 風(fēng)格即可,Clion 默認(rèn)提供8種風(fēng)格,也支持用戶 DIY。

設(shè)置快捷鍵風(fēng)格

由于我經(jīng)常使用 Sublime Text,希望在一些共同的功能能夠保持相同的快捷鍵,所以我自己 DIY 了一些:

  1. Add selection for Next Occurrence (多重選擇) —> ? + D
  2. Unselect Occurrence (取消選擇) —> ? + U
  3. Build (編譯) —> ? + B
  4. Select Line at Caret (選中光標(biāo)所在行) —> ? + L

代碼提示的匹配模式

Clion 代碼提示和補(bǔ)充的匹配有 All, None, First Letter 三種方式:

模式 說明 推薦程度
All 關(guān)鍵詞完全匹配 ?
First Letter 第一個字符完全匹配 ??
None 不區(qū)分大小寫、首字符 ??

All 需要關(guān)鍵詞完全一致(大小寫、字符順序)才會提示,F(xiàn)irst Letter 只要關(guān)鍵詞的第一個字母(區(qū)分大小寫)或下標(biāo)匹配就會出現(xiàn)提示,而 None 則是匹配要求最為寬松的一種,不區(qū)分大小寫、不要求首字匹配,我個人比較喜歡這種,懶人福音~~

自動匹配模式

智能提示

官方給出的名字是 intention actions,這個和 auto-complete 不同,會根據(jù)你寫的代碼給出即時提示,比如調(diào)用某個函數(shù)漏寫了一個參數(shù)。厲害的是不僅提示這些問題或建議,同時還提供解決方案,點擊左側(cè)的小燈泡或者按 ? + Enter(Windows 下是 Alt + Enter,快捷鍵參考自己的配置)會顯示這些提示確認(rèn)后即可應(yīng)用。


智能提示

快速修復(fù)

這個功能作用和智能提示有點類似,相比之下區(qū)別在于快速修復(fù)專注于一些容易出現(xiàn)的小錯誤,比如忘記;, 判斷中用=等很容易出現(xiàn)的小錯誤,Clion 也會顯示小燈泡引起你的注意,快捷鍵和智能提示一樣,按下 ? + ? 就可以快速修復(fù)。

快速修復(fù)

快速注釋

注釋功能是我們在敲代碼過程中的高頻操作之一,和 Sublime Text 一樣,按 ? + / 會以行形式注釋光標(biāo)所在的代碼行,按 ? +? + / 則會以代碼塊的形式完成注釋。

另外,在注釋的內(nèi)容里加上 todo,就會自動被 Clion 記作待處理的代碼,當(dāng)你要提交代碼時 Clion 會提示你檢查 todo 的內(nèi)容:


todo

代碼生成

這個功能會在特定情境下幫你自動生成一些代碼,比如類的構(gòu)造函數(shù)和析構(gòu)函數(shù)等,在需要生成的地方按? + N 即可,這個功能我最常用到的使用場景是在頭文件中聲明函數(shù)后轉(zhuǎn)到主文件中進(jìn)行定義:

生成代碼

另外你還可以? + J 插入完整的代碼塊,默認(rèn)只有 for, iter, itit,也可以自己在Setting—>Live Templates 里添加自定義的代碼塊,比如我創(chuàng)建了一個main()函數(shù)的代碼塊,輸入 main就會在提示框里出現(xiàn)我們添加的代碼塊,這個真的是很方便。

插入代碼塊

最后還有一個 surround with 的功能,選中任意的代碼塊按 ? + ? + T 就可以選擇給這些代碼包裹上 if for 等。

代碼包裹

巧用搜索功能

搜索又是一個非常實用的功能, Clion 的搜索功能非常強(qiáng)大。

基本搜索

對于基本的搜索(也是最常用到的), ? + F 相信大家都已經(jīng)非常熟悉了,? + ? + F 則可以在整個工程中進(jìn)行搜索;按 ? + F7 可以找到某個類、變量、函數(shù)等在文中被使用到的的地方;


cl_QST_find_usages.png

項目導(dǎo)航

對于一個大的項目,很多時候需要理清它的層次結(jié)構(gòu),Clion 為我們提供了項目內(nèi)文件、類等的導(dǎo)航搜索:

? + O 通過類的名字進(jìn)行搜索;
? + ? + O 通過文件名進(jìn)行搜索;
? + ? + O 通過符號名進(jìn)行搜索;
? + B 搜索聲明;
? + U 基類/函數(shù)搜索;

功能搜索

這個真的是厲害啊,按 ? + ? + A 然后輸入你想用到的功能,然后選中就可以了,尤其是當(dāng)快捷鍵太多記不住的時候真的是很實用啊。


功能搜索

全局搜索
當(dāng)你不知道你要搜索的東西是屬于上面哪一類的時候,就試試 Search Everywhere,只需要連按兩下 ?,就會呼出 Search Everywhere 的搜索框。

全局搜索

調(diào)試運行

說實話現(xiàn)在很多編輯器在代碼編輯上的功能和體驗都不輸 IDE 了,但是在項目調(diào)試和運行上 IDE 還是有著不小的優(yōu)勢,這也是很多人在大的項目里選擇 IDE 而不是代碼編輯器的原因。

首先你可以在 Run | Edit Configurations 里面配置調(diào)試運行的選項,如果你希望在編譯之前或者運行之后運行一段腳本,你可以自己添加這些額外的配置。

在 OS X 上,Clion 支持 GDB 和 LLDB ,建議使用 LLDB,調(diào)試的過程和很多 IDE 類似,你可以創(chuàng)建斷點,按右上方的小蟲或者? + ? + U 進(jìn)行調(diào)試,你可以逐行、逐語句進(jìn)行調(diào)試,Clion 很人性化的一點是調(diào)試時變量的值會直接以斜體顯示在右側(cè)(這點施加分項啊),而且 Clion 支持調(diào)試過程中更改變量的值(在調(diào)試輸出框內(nèi)選擇相應(yīng)變量右擊 set value 或者按 F2)。

調(diào)試界面

ps. Clion 的調(diào)試速度并不是很快,尤其是在 Windows 平臺體驗不如 Visual Studio。

版本控制

Clion 支持 Git, mercurial 等常見的版本控制系統(tǒng),針對 Github 有特定的設(shè)置選項,可以在(Preferences -> Version Control 里進(jìn)行設(shè)置),以 Git 為例,可視化的形式涵蓋了所有常用的功能:

版本控制

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

最后

以上提到的技巧是我平時用 Clion 時的一些心得,使用習(xí)慣因人而異,所謂的技巧只有頻繁的使用才有意義,我不建議一開始就去記住那些狂拽酷炫吊炸天的快捷鍵。如果你之前有使用過 JetBrains 家其他的產(chǎn)品,那么我相信你很快就能上手 Clion,如果你是第一次使用他家的產(chǎn)品,那么這篇文章可能會對你有一點用處。

如果你需要全面了解 Clion 的功能,可以訪問 JetBrains 的官方指南,本文也有部分內(nèi)容參考了這個指南。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,797評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,179評論 3 414
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,628評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,642評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 71,444評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,948評論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,040評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,185評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,717評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,602評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,794評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,045評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,418評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,671評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,414評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 47,750評論 2 370

推薦閱讀更多精彩內(nèi)容

  • 本文已更新,點擊訪問 最近學(xué)習(xí) C++,首選的代碼編輯器是 Sublime Text,這款輕便、顏值高、功能強(qiáng)大的...
    鏈球選手閱讀 97,774評論 27 33
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,603評論 25 707
  • 2017.09.15 周五 多云 晚上我和兒子聊天,兒子突然要告訴我一件事情,還要求我不能生氣。我心里只打小鼓,這...
    戴驍勇閱讀 465評論 0 1
  • 一葉知秋落海堤,蕭瑟昏夕,渫雨凄迷。天開陰霽夢依稀,鴻雁輕啼,望斷云低。 殘熱猶威汗染衣,茶飲神移...
    海1619閱讀 253評論 2 7
  • 再有一個禮拜左右就到了立秋時節(jié)了,我不確定,或許是兩個禮拜。這太陽依舊晚睡早起,霸占大部分的夜。約四五點鐘,天色就...
    簡書拾荒者閱讀 275評論 0 1