
文章插圖
2020年了,不要再看網(wǎng)上那些老舊的文章還在教你使用手工生成 tags 的,請(qǐng)使用自動(dòng)代碼索引生成工具,比如 vim-gutentags,現(xiàn)在網(wǎng)上好像就沒有一篇能正確討論 Vim C/C++ 環(huán)境搭建的,都在談些十年前的東西,所以我寫了篇關(guān)于 Vim 8 和 C/C++ 相關(guān)插件的介紹:
假設(shè)你已經(jīng)有一定 Vim 使用經(jīng)驗(yàn),并且折騰過 Vim 配置,能夠相對(duì)舒適的在 Vim 中編寫其他代碼的時(shí)候,準(zhǔn)備在 Vim 開始 C/C++ 項(xiàng)目開發(fā),或者你已經(jīng)用 Vim 編寫了幾年 C/C++ 代碼,想要更進(jìn)一步,讓自己的工作更加順暢的話,本文就是為你準(zhǔn)備的:
需要視頻資料的加關(guān)注后臺(tái)私信“1”獲取
插件管理
為什么把插件管理放在第一個(gè)來講呢?這是比較基本的一個(gè)東西,如今 Vim 下熟練開發(fā)的人,基本上手都有 20-50 個(gè)插件,遙想十年前,Vim里常用的插件一只手都數(shù)得過來 。過去我一直使用老牌的 Vundle 來管理插件,但是隨著插件越來越多,更新越來越頻繁,Vundle 這種每次更新就要好幾分鐘的東西實(shí)在是不堪重負(fù)了 。
在我逐步對(duì) Vundle 失去耐心之后,我試用了 vim-plug ,用了兩天以后就再也回不去 Vundle了,它支持全異步的插件安裝,安裝50個(gè)插件只需要一分鐘不到的時(shí)間,這在 Vundle 下面根本不可想像的事情,插件更新也很快,不像原來每次更新都可以去喝杯茶去,最重要的是它支持插件延遲加載:
" 定義插件,默認(rèn)用法,和 Vundle 的語法差不多Plug 'junegunn/vim-easy-align'Plug 'skywind3000/quickmenu.vim'" 延遲按需加載,使用到命令的時(shí)候再加載或者打開對(duì)應(yīng)文件類型才加載Plug 'scrooloose/nerdtree', { 'on':'NERDTreeToggle' }Plug 'tpope/vim-fireplace', { 'for': 'clojure' }" 確定插件倉(cāng)庫(kù)中的分支或者 tagPlug 'rdnetto/YCM-Generator', { 'branch': 'stable' }Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' }定義好插件以后一個(gè) :PlugInstall 命令就并行安裝所有插件了,比 Vundle 快捷不少,關(guān)鍵是 vim-plug 只有單個(gè)文件,正好可以放在我 github 上的 vim 配置倉(cāng)庫(kù)中,每次需要更新 vim-plug 時(shí)只需要 :PlugUpgrade,即可自我更新 。使用時(shí)建議給插件分組,同類別插件放一個(gè)組里,vimrc 里面只需要確定下啟用哪些組就行了 。
拋棄 Vundle 切換到 vim-plug 以后,不僅插件安裝和更新快了一個(gè)數(shù)量級(jí),大量的插件我都配置成了延遲加載,Vim 啟動(dòng)速度比 Vundle 時(shí)候提高了不少 。使用 Vundle 的時(shí)候一旦插件數(shù)量超過30個(gè),管理是一件很痛苦的事情,而用了 vim-plug 以后,50-60個(gè)插件都輕輕松松 。
符號(hào)索引
現(xiàn)在有好多 ctags 的代替品,比如 gtags, etags 和 cquery 。然而我并不排斥 ctags,因?yàn)樗С?50+ 種語言,沒有任何一個(gè)符號(hào)索引工具有它支持的語言多 。同時(shí) Vim 和 ctags 集成的相當(dāng)好,用它依賴最少,大量基礎(chǔ)工作可以直接通過 ctags 進(jìn)行,然而到現(xiàn)在為止,我就沒見過幾個(gè)人把 ctags 用對(duì)了的 。
就連配置文件他們都沒寫對(duì),正確的 ctags 配置應(yīng)該是:
set tags=./.tags;,.tags這里解釋一下,首先我把 tag 文件的名字從“tags” 換成了 “.tags”,前面多加了一個(gè)點(diǎn),這樣即便放到項(xiàng)目中也不容易污染當(dāng)前項(xiàng)目的文件,刪除時(shí)也好刪除,gitignore 也好寫,默認(rèn)忽略點(diǎn)開頭的文件名即可 。
前半部分 “./.tags; ”代表在文件的所在目錄下(不是 “:pwd”返回的 Vim 當(dāng)前目錄)查找名字為 “.tags”的符號(hào)文件,后面一個(gè)分號(hào)代表查找不到的話向上遞歸到父目錄,直到找到 .tags 文件或者遞歸到了根目錄還沒找到,這樣對(duì)于復(fù)雜工程很友好,源代碼都是分布在不同子目錄中,而只需要在項(xiàng)目頂層目錄放一個(gè) .tags文件即可;逗號(hào)分隔的后半部分 .tags 是指同時(shí)在 Vim 的當(dāng)前目錄(“:pwd”命令返回的目錄,可以用 :cd ..命令改變)下面查找 .tags 文件 。
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助:- 配電房滅火器配置標(biāo)準(zhǔn)
- 低配置電腦怎么流暢的打英雄聯(lián)盟 低配置電腦流暢打英雄聯(lián)盟方法介紹
- 簡(jiǎn)述DNS的主要功能 配置dns有什么用
- 十分鐘配置Mac OS主題 ubuntu桌面美化mac
- linux網(wǎng)絡(luò)配置的詳細(xì)過程 linux命令行界面切換
- C語言各種類型所占字節(jié)數(shù) c語言中一個(gè)數(shù)字占幾個(gè)字節(jié)
- diy組裝電腦配置清單 diy組裝機(jī)是什么意思
- 室內(nèi)消火栓箱內(nèi)一般應(yīng)配置有哪些
- 小程序ssl證書配置 ssl證書配置教程
- 小米6x參數(shù)配置對(duì)比 小米6x中關(guān)村參數(shù)
