
無論你是手動安裝還是通過包管理器安裝,插件都可以幫助你在工作流中打造一個完美的 Vim 。-- Seth Kenlon(作者)
雖然 Vim 是快速且高效的,但在默認情況下,它僅僅只是一個文本編輯器。至少,這就是沒有插件的情況 Vim 應當具備的樣子,插件構建在 Vim 之上,並添加額外的功能,使 Vim 不僅僅是一個輸入文本的窗口。有了合適的插件組合,你可以控制你的生活,形成你自己獨特的 Vim 體驗。你可以 自定義你的主題 ,你可以添加語法高亮,代碼 linting,版本跟蹤器等等。
怎麼安裝 Vim 插件
Vim 可以通過插件進行擴展,但很長一段時間以來,並沒有官方的安裝方式去安裝這些插件。從 Vim 8 開始,有一個關於插件如何安裝和加載的結構。你可能會在網上或項目自述文件中遇到舊的說明,但只要你運行 Vim 8 或更高版本,你應該根據 Vim 的 官方插件安裝方法 安裝或使用 Vim 包管理器。你可以使用包管理器,無論你運行的是什麼版本(包括比 8.x 更老的版本),這使得安裝過程比你自己維護更新更容易。
手動和自動安裝方法都值得了解,所以請繼續閱讀以瞭解這兩種方法。
手動安裝插件(Vim 8 及以上版本)
所謂的 “Vim 包”是一個包含一個或多個插件的目錄。默認情況下,你的 Vim 設置包含在 ~/.vim 中,這是 Vim 在啟動時尋找插件的地方。(下面的示例使用了通用名稱 vendor 來表示插件是從其它地方獲得的。)
當你啟動 Vim 時,它首先處理你的 .vimrc文件,然後掃描 ~/.vim 中的所有目錄,查找包含在 pack/*/start 中的插件。
默認情況下,你的 ~/.vim 目錄(如果你有的話)中沒有這樣的文件結構,所以設置為:
<code>$ mkdir -p ~/.vim/pack/vendor/start/<code>
現在,你可以將 Vim 插件放在 ~/.vim/pack/vendor/start 中,它們會在你啟動 Vim 時自動加載。
例如,嘗試安裝一下 NERDTree ,這是一個基於文本的 Vim 文件管理器。首先,使用 Git 克隆 NERDTree 存儲庫的快照:
<code>$ git clone --depth 1 \\ https://github.com/preservim/nerdtree.git \\ ~/.vim/pack/vendor/start/nerdtree/<code>
啟動 Vim 或者 gvim,然後鍵入如下命令:
<code>:NERDTree/<code>
Vim 窗口左側將打開一個文件樹。

NERDTree plugin
如果你不想讓一個插件每次啟動 Vim 時都自動加載,你可以在 ~/.vim/pack/vendor 中創建 opt 文件夾:
<code>$ mkdir ~/.vim/pack/vendor/opt/<code>
任何安裝到 opt 的插件都可被 Vim 使用,但是隻有當你使用 packadd 命令將它們添加到一個會話中時,它們才會被加載到內存中。例如,一個虛構的叫 foo 的插件:
<code>:packadd foo/<code>
Vim 官方建議每個插件項目在 ~/.Vim/pack 中創建自己的目錄。例如,如果你要安裝 NERDTree 插件和假想的 foo 插件,你需要創建這樣的目錄結構:
<code>$ mkdir -p ~/.vim/pack/NERDTree/start/$ git clone --depth 1 \\ https://github.com/preservim/nerdtree.git \\ ~/.vim/pack/NERDTree/start/NERDTree$ mkdir -p ~/.vim/pack/foo/start/$ git clone --depth 1 \\ https://notabug.org/foo/foo.git \\ ~/.vim/pack/foo/start/foo/<code>
這樣做是否方便取決於你。
使用 Vim 包管理器(任何 Vim 版本)
自從 Vim 8 以後,包管理器變得不那麼有用了,但是一些用戶仍然喜歡它們,因為它們能夠自動更新一些插件。有幾個包管理器可供選擇,並且它們各不相同,但是 vim-plug 有一些很棒的特性和最好的文檔,這使我們很容易開始並在以後深入研究。
使用 vim-plug 安裝插件
安裝 vim-plug,以便它在啟動時自動加載:
<code>$ curl -fLo ~/.vim/autoload/plug.vim --create-dirs \\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim/<code>
創建一個 ~/.vimrc 文件(如果你還沒有這個文件),然後輸入以下文本:
<code>call plug#begin()Plug 'preservim/NERDTree'call plug#end()/<code>
每次要安裝插件時,都必須在 plug#begin() 和 plug#end() 之間輸入插件的名稱和位置(上面以 NERDTree 文件管理器為例)。如果你所需的插件未託管在 GitHub 上,你可以提供完整的 URL,而不僅僅是 GitHub 的用戶名和項目 ID。你甚至可以在 ~/.vim 目錄之外“安裝”本地插件。
最後,啟動 Vim 並提示 vim-plug 安裝 ~/.vimrc 中列出的插件:
<code>:PlugInstall/<code>
等待插件下載。
通過 vim-plug 更新插件
與手動安裝過程相比,編輯 ~/.vimrc 並使用命令來進行安裝可能看起來並沒有多省事,但是 vim-plug 的真正優勢在更新。更新所有安裝的插件,使用這個 Vim 命令:
<code>:PlugUpdate/<code>
如果你不想更新所有的插件,你可以通過添加插件的名字來更新任何插件:
<code>:PlugUpdate NERDTree/<code>
恢復插件
vim-plug 的另一個優點是它的導出和恢復功能。Vim 用戶都知道,正是插件的緣故,通常每個用戶使用 Vim 的工作方式都是獨一無二的。一旦你安裝和配置了正確的插件組合,你最不想要的局面就是再也找不到它們。
Vim-plug 有這個命令來生成一個腳本來恢復所有當前的插件:
<code>:PlugSnapshot ~/vim-plug.list/<code>
vim-plug 還有許多其他的功能,所以請參考它的 項目頁面 以獲得完整的文檔。
打造一個完美的 Vim
當你整天都在做一個項目時,你希望每一個小細節都能為你提供最好的服務。瞭解 Vim 和它的許多插件,直到你為你所做的事情構建出一個完美的應用程序。
有喜歡的 Vim 插件嗎?請在評論中告訴我們吧!
via: opensource.com
作者: Seth Kenlon 選題: lujun9972 譯者: qianmingtian 校對: wxy
本文由 LCTT 原創編譯, Linux中國 榮譽推出
閱讀更多 Linux中國 的文章