工欲善其事,可能會(huì)有用的Clion技巧

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

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

JetBrains 全家的產(chǎn)品幾乎都支持 student license,所有產(chǎn)品!所有產(chǎn)品!所有產(chǎn)品!重要的事情要說(shuō)三遍一次授權(quán)時(shí)間為一年,到期需要重新驗(yàn)證 edu 郵箱,建議學(xué)生黨們通過(guò)該方式激活,戳這里申請(qǐng),其他有能力的用戶可以購(gòu)買授權(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 三種方式:

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

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

自動(dòng)匹配模式

智能提示

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


智能提示

快速修復(fù)

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

快速修復(fù)

快速注釋

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

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


todo

代碼生成

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

生成代碼

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

插入代碼塊

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

代碼包裹

巧用搜索功能

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

基本搜索

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


cl_QST_find_usages.png

項(xiàng)目導(dǎo)航

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

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

功能搜索

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


功能搜索

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

全局搜索

調(diào)試運(yùn)行

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

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

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

調(diào)試界面

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

版本控制

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

版本控制

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

最后

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

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容