现代化 C++ 开发工具 CLion 从入门到精通
作者:allsochen ,騰訊 PCG 后臺(tái)開(kāi)發(fā)工程師
這就是 CLion
幾年前寫(xiě)過(guò)一篇 eclipse C++ 的文章、現(xiàn)在還提 eclipse 的話人民群眾會(huì)仇恨我,我的朋友和家人也會(huì)嘲笑我,唾棄我。因?yàn)?JetBrains 家的系列產(chǎn)品 CLion 體驗(yàn)耍 eclipse 好幾條街。引用知乎網(wǎng)友對(duì) CLion 和 vim/emacs 的形象比喻,如圖所示:
從圖中可以看出 CLion 的定位是一個(gè)完整的現(xiàn)代化 C++工具,包含很多實(shí)用的功能,而 vim 則是輕巧鋒利,如果你在 CLion 上用 Vim,那就是拿著刀的機(jī)器人。這能量你懂的。
起飛前的前奏
根據(jù)上次給大家講解騰訊特有的 windows 開(kāi)發(fā)模式,如下圖所示:
Windows 上的環(huán)境需要準(zhǔn)備煉丹爐:clion 安裝、cygwin、jce release 的文件、taf 源碼。
以上所有涉及到的軟件都在 30 的開(kāi)發(fā)機(jī)上:
/data/home/allsochen/software/clion。
通過(guò) samba 可以直接看到對(duì)應(yīng)的文件。大家可以直接去取,單不用展示出你的剪刀手。不要直接在 samba 上點(diǎn)擊安裝,samba 的性能令人堪憂。
Clion:
安裝:直接點(diǎn)擊下一步,下一步安裝,安裝完成
授權(quán):第一次打開(kāi)提示授權(quán)、支持大家購(gòu)買(mǎi)正版、有 edu 的 email 可以申請(qǐng)免費(fèi)試用。其他辦法你們懂的。
啟動(dòng)參數(shù):由于 clion 是 java 開(kāi)發(fā)的,相對(duì)比較耗內(nèi)存,建議設(shè)置最大內(nèi)存為 4086M,具體的設(shè)置在:
C:\Program Files\JetBrains\CLion 2018.1.5\bin 目錄下:
的 clion64.exe.vmoptions 文件,把第三行-Xmx2000m 改為-Xmx4086m,同時(shí)打開(kāi)的項(xiàng)目比較多的同學(xué)建議再設(shè)置大一些,畢竟我們的開(kāi)發(fā)機(jī)有 16G,任性。
Cygwin:
安裝:拷貝 cygwin64.zip 到 c 盤(pán)解壓,解壓完的目錄如下:
Path 設(shè)置:為了在 cmd 命令下可以用到 linux 上常用的 grep,find 等命令,在環(huán)境變量 path 中加入 C:\cygwin64\bin
Jce 依賴文件:
安裝 winscp,通過(guò) winscp 軟件把 30 開(kāi)發(fā)機(jī)上的/home/tafjce 目錄同步到 D:/Codes/tafjce 下
設(shè)置同步配置,請(qǐng)認(rèn)真看清楚這里的選項(xiàng),否則誤刪除開(kāi)發(fā)機(jī)上的 release 文件,可能你今年年終獎(jiǎng)就 gg 了。是把遠(yuǎn)程的目錄同步到本地目錄,方向/目標(biāo)目錄:本地
設(shè)置傳輸設(shè)置:只同步*.h/*.cpp/*.mk/*.jce 文件、排除.svn 目錄
階段性同步:第一次全量同步后,后續(xù)只需要在開(kāi)發(fā)需要的過(guò)程中空閑的時(shí)間偶爾同步就 ok 了。
字體:推薦 kotlin 之父,JetBrains 公司 CEO 推薦的字體 Lucida Sans Typewriter
CLion 配置:
復(fù)制 config.zip 文件到:
C:\Users\yourname\.CLion2018.1 下
刪除原來(lái)的 config 目錄
解壓 config.zip,解壓的目錄如下
這個(gè)配置的作用是集成了:瀏覽器 C++開(kāi)發(fā)手冊(cè)的編程規(guī)約、jce
editor、m2cmake 等一系列開(kāi)源的插件和我實(shí)現(xiàn)的插件。
Vim 配置:
如果你想把機(jī)器人和武士刀合體,嘗試下合體后的新力量。
拷貝.ideavimrc 文件到 C:\Users\yourname 的根目錄
Taf 支持:
1)拷貝 taf.zip 文件到 D:\Codes\C++目錄下解壓
起飛
打開(kāi) clion,這時(shí)候會(huì)提示我的一些無(wú)效的工程,直接刪除就可以了。然后可以通過(guò) svn、git 或者本地文件引入一個(gè) C++服務(wù),這里切忌不要引入一個(gè)具有多個(gè)服務(wù)的目錄,一個(gè)項(xiàng)目一個(gè)服務(wù)。打開(kāi)一個(gè)服務(wù)項(xiàng)目后:
自動(dòng)部署:
把本地的服務(wù)目錄文件自動(dòng)同步到目標(biāo)開(kāi)發(fā)編譯的 samba 目錄
配置目標(biāo)同步目錄:Files->Settings->Other Settings->Quickly Sync
Deployment
配置需要同步到自己的開(kāi)發(fā)編譯目錄,請(qǐng)把 allsochen 改成你的名稱
2)通過(guò)菜單 Tools->Quickly Sync Deployment 進(jìn)行快速同步部署
3)確認(rèn)部署:Tools->Deployment->Configuration->OK
一定要執(zhí)行這一步,第二部的插件有 bug,第一次配置會(huì)導(dǎo)致不生效,還沒(méi)有空改插件。
Cmake:
通過(guò) m2cmake 插件把 taf 的 makefile 相關(guān)文件生成 CMakeList.txt 文件。選中項(xiàng)目跟目錄,右鍵菜單《Transfer
TAF makefile to cmake…》
構(gòu)建項(xiàng)目:選中項(xiàng)目跟目錄,右鍵菜單點(diǎn)擊《Reload Cmake
Project》,也可以通過(guò)快捷鍵 Alt+K,Alt+M 進(jìn)行構(gòu)建
構(gòu)建完成后,嘗試下 taf 框架的智能提示和 jce 依賴的智能提示,確認(rèn)下是否生效。
神秘的力量
Live Tempalte
Live
Tempalte 是模板代碼的抽象,可以快速生成帶有變量的代碼模板。比如在打開(kāi)的 cpp 編輯器中使用 forv,然后按下 tab 鍵,就會(huì)自動(dòng)生成一個(gè)模板 for 循環(huán)一個(gè) vector 的模板。從 File->Settings->Editor->Live
Tempaltes 中可以看到已經(jīng)配置的模板
常用快捷鍵:Help->Keymap reference
JetBrains 的 CEO 說(shuō)他們的開(kāi)發(fā)工具是不需要用到鼠標(biāo)的
這里列舉幾個(gè)常用的:
Shift+Ctrl+N:打開(kāi)文件
Ctrl+E:打開(kāi)最近的文件
Ctrl+Y:刪除一行
Ctrl+F12:列舉出文件的函數(shù),可以輸入字母匹配搜索
Ctrl+Q:變量、函數(shù)等的說(shuō)明文檔
Ctrl+W:擴(kuò)展選擇
Ctrl+Shift+N:最后編輯點(diǎn)
,,w:屏幕內(nèi)光標(biāo)定位 ,,s:再按需要搜索的字母:屏幕搜索字母
Shift+F6:重構(gòu)命名
Alt+Shift+方向上、下:代碼移動(dòng)
Shift+Enter:以新窗口打開(kāi)
更多的需要自己去搜索,只要你用到鼠標(biāo)的地方,都有一個(gè)快捷鍵適合你。
Frame Switch 插件
在不同的項(xiàng)目中切換窗口,支持搜索匹配,快捷鍵 Alt+F2
M2cmake 插件
自動(dòng)把 taf 的 makefile 生成 CMakeList.txt 文件
https://github.com/Allsochen/clion-m2cmake
QuicklySyncDeployment
自動(dòng)把項(xiàng)目文件部署拷貝到開(kāi)發(fā)機(jī)
https://github.com/Allsochen/clion-m2cmake
目前還有一點(diǎn)小 bug,歡迎有志之士一起維護(hù)
Jce Editor
Jce 文件格式化、跳轉(zhuǎn)、語(yǔ)法提示等,格式化 Alt+Ctrl+L
目前還有一點(diǎn)小 bug,歡迎有志之士一起維護(hù)
StringStyle
提供各種字符串之間的轉(zhuǎn)換,快捷鍵 Alt+M
https://github.com/Allsochen/StringStyle
本文 PPT 源文件可在后臺(tái)回復(fù):clion?獲得。
推薦閱讀:
這才是真正的Git——Git內(nèi)部原理揭秘!
把你的 VS Code 打造成 C++ 開(kāi)發(fā)利器
淺談微視推薦系統(tǒng)中的特征工程
總結(jié)
以上是生活随笔為你收集整理的现代化 C++ 开发工具 CLion 从入门到精通的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 这才是真正的Git——Git内部原理揭秘
- 下一篇: Serverless:云函数 + 小马B