![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLllzMhZ2Y1cjYklDZjVTOycjN5AjM5U2N5EGMwUjZkVTN4UGN3IDMz8CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
作為 vi 的更新版,vim 毫無争議是 linux 中最受歡迎的指令行編輯器之一。除了是一個多功能編輯器外,世界各地的軟體開發者将 vim 當做 ide(內建開發環境integrated development environment)來使用。
事實上,因為 vim 可以通過插件來擴充其自身功能才使得它如此功能強大。不用說,肯定有那麼幾個 vim 插件是旨在提高使用者的程式設計體驗的。
特别是對于剛剛使用 vim 或者使用 vim 做開發的的軟體開發者來說,我們将在本教程中讨論一些非常有用的 vim 插件,具體請看例示。
請注意:本教程中列舉的所有例示、指令和說明都是在 ubuntu 16.04 環境下進行測試的,并且,我們使用的 vim 版本是 7.4。
插件安裝設定
這是為新使用者準備的,假設他們不知道如何安裝 vim 插件。是以,首先,就是給出一些完成安裝設定的步驟。
在你的home目錄下建立 .vim 目錄,并在其中建立子目錄 autoload 和 bundle。
然後,在 autoload 放置 pathogen.vim 檔案,這個檔案可以從此處 下載下傳。
最後,在你的home目錄建立 .vimrc 檔案,并添加以下内容。
vim plugin installation
至此,你已完成了 vim 插件安裝的準備工作。
注意:我們已經讨論了使用 pathogen 管理 vim 插件。當然還有其他的插件管理工具——欲了解,請通路此處。
現在已經全部設定完畢,就讓我們來讨論兩個好用的 vim 插件吧。
vim 标簽側邊欄(tagbar)插件
首先就是标簽側邊欄(tagbar)插件。該插件能夠讓你浏覽源檔案包含的标簽,進而提供該源檔案的結構簡覽。其官網的插件說明是這樣說的:“它通過建立側邊欄,然後以一定順序展示從目前檔案以 ctags 提取的标簽來完成這一功能。這意味着,比如,c++ 中的方法将展示在其自身所定義在的類裡邊。”
聽起來很酷,不是嗎?讓我們來看看該怎麼安裝它。
标簽側邊欄(tagbar)的安裝過程是相當容易的——你隻需要運作下列指令:
安裝完之後就可以使用了,你可以在 vim 中打開一個 .cpp 檔案來測試它:進入指令模式,然後運作 :tagbaropen 指令。以下是運作 :tagbaropen 指令之後出現側邊欄(右側) 的效果圖。
使用 :tagbarclose 可以關閉側邊欄。值得一提的是,可以使用 :tagbaropen fj 指令打開側邊欄來打開它的跳轉(shift control)功能。也就是說,你可以很友善的浏覽目前檔案包含的标簽——在對應的标簽上按下 enter 鍵,然後在左側的源代碼視窗跳轉到對應的位置。
假如你想要反複地開關側邊欄,你可以使用 :tagbartoggle 指令,而不用交替的使用 :tagbaropen 和 :tagbarclose 指令。
如果你覺得輸入這些指令很費時間,你可以為 :tagbartoggle 指令建立快捷鍵。比如,添加以下内容到 .vimrc 檔案中:
這樣,你就可以用 f8 來切換标簽側邊欄(tagbar)了。
更進一步,有時候你可能會注意到某個标簽前邊有一個 +、- 或者 # 符号。比如,以下截圖(取自該插件的官網)展示了一些前邊有 + 号的标簽。
這些符号基本是用來表明一個特定标簽的可見性資訊。特别是 + 表示該類是 public 的,而 - 表示一個 private 類。# 則是表示一個 protected 類。
以下是使用标簽側邊欄(tagbar)的一些注意事項:
該插件的官網早就有說明:“标簽側邊欄(tagbar)并非是管理标簽(tags)檔案而設計,它隻是在記憶體中動态建立所需的标簽,而非建立任何檔案。标簽(tags)檔案的管理有其他插件提供支援。”
低于 7.0.167 版本的 vim 和标簽側邊欄(tagbar)插件存在着一個相容性問題。根據官網:“如果你受到此問題的影響,請使用代替版:下載下傳 zip 壓縮包。這對應到 2.2 版本,但由于大量的依賴變更,它可能不會再更新。”
如果你在加載該插件時遇到這樣的錯誤:未找到 ctags!(tagbar: exuberant ctags not found!)。你可以從 此處下載下傳并安裝 ctags 來修複錯誤。
擷取更多資訊請通路 這裡。
vim 界定符自動補齊(delimitmate)插件
下一個要介紹的插件就是界定符自動補齊(delimitmate)。該插件在 vim 插入模式下提供引号、圓括号和方括号等界定符自動補齊功能。
該插件官網說:“它同時也提供一些相關的特性讓你在輸入模式下變得更加便捷,比如文法糾錯(在注釋區或者其他的可配置區不會自動插入結束界定符)、回車和空格填充(預設關閉)等。”
安裝步驟與之前介紹的相似:
一旦你成功安裝這個插件(即上述指令執行成功),你就不需要進行任何配置了——當 vim 啟動時會自動加載這個插件。
至此,在你使用 vim 的任何時候,隻要你輸入一個雙引号、單引号、單号、圓括号、方括号,它們都會自動補齊。
你可以自己配置界定符自動補齊(delimitmate)。比如,你可以添加需要自動補齊的符号清單,阻止自動加載該插件,對指定類型檔案關閉該插件等。想了解如何配置這些(或者其他更多的配置),請閱讀該插件的詳細文檔——運作 :help delimitmate 即可。
上述指令會将你的 vim 視窗水準分割成兩個,上邊一個包含我們所說的文檔。
結論
本文之中提到的兩個插件,tagbar 需要花費較多時間來适應——你應該會同樣這個說法。但隻要正确設定好它(這意味着你像是有了快捷鍵一樣友善),就容易使用了。至于 delimitmate,不需要任何要求就可以上手。