前言:本篇文章續接前一篇:詳談Vim的配置層次結構與插件加載方式(一)
vim有各種各樣的插件管理工具,但是在vim8.0之後,不再需要其他的插件管理工具了,自帶了插件管理功能,可以選擇性的管理插件,非常的方便,本文介紹vim8.的自帶插件管理。
centos或者是Ubuntu先升級vim至8.1版本。
一、vim 8的內置插件管理——pack管理
1.1 創建pack包管理的文件夾
其實pack包管理的方式和其他的插件管理是類似的,依然要先創建文件夾,原理類似。
最穩定的管理插件的方法是使用Vim 8的內置功能,該功能不需要第三方代碼。下面讓我們具體來看看這種方法。
首先在用戶目錄之下的.vim文件夾之下創建一個pack目錄,然後在pack目錄中創建兩個子目錄opt和start。注意這裏,這裏的自定義名稱是我們要對插件進行的一個分類,比如自動補全的、導航的、調試的等等,方便管理,當然我就統統放在一個目錄之下也行,只是不方便管理。
mkdir -p ~/.vim/pack/自定義名稱/{opt,start}
注意事項:
(1)注意佔位符 自定義名稱。這個名稱完全取決於你。我們用它對包進行分類。大多數人會把所有的插件都扔進一個無意義的類別中,這樣完全沒問題。你可以選擇自己喜歡的名稱,在本文中我選擇使用 foobar。理論上,你也可以創建多個類別,比如~/.vim/pack/navigation, ~/.vim/pack/linting等,當然我也可以都放在foobar 這個目錄之下。
(2)Vim不會檢測類別之間的重複,如果存在重複,則會加載兩次。
(3)“start”目錄中的包會自動加載。而對於“opt”目錄中的包,只有通過:packadd命令特別請求,Vim纔會加載。opt中適合保存不常用的軟件包,以及爲保持Vim的快速啓動不必要運行的腳本。請注意,:packadd沒有相反的命令卸載包。
比如我現在的系統中創建了這樣的文件夾:
/home/zoe/.vim/pack/my_plugs/start
/home/zoe/.vim/pack/my_plugs/opt
1.2 插件安裝的步驟兩步走——“插件克隆”+“文檔說明”
(1)“插件克隆”——在start文件夾裏面添加自動加載的插件
如nerdtree插件:
首先下載插件到start文件夾裏面,
git clone https://github.com/scrooloose/nerdtree.git ~/.vim/pack/vendor/start/nerdtree
或者是直接進入到start文件夾,直接克隆即可,如下:
cd ~/.vim/pack/my_plugs/start/
git clone https://github.com/scrooloose/nerdtree.git
或者我們也可以使用第三方下載工具curl或者是wget直接下載也可以。如下:
curl -L https://github.com/kien/ctrlp.vim/archive/1.79.tar.gz #下載
tar zx -C ~/.vim/pack/my_plugsr/start #解壓到剛創建的start文件夾之下
我們發現在start文件裏面多了一個nerdtree文件夾,然後創建關於該插件的說明。
(2)文檔說明——爲每一個下載的插件添加文檔說明
在每一個下載的插件下面都有一個doc文件夾,裏面有一個文本文件,放置了關於該插件的說明,我需要將文件說明安裝,以便於在vim中查看幫助。
- 方式一:在命令行中安裝說明
vim -u NONE -c "helptags ~/.vim/pack/my_plugs/start/nerdtree/doc" -c q
- 方式二:在vim中安裝
:helptags ~/.vim/pack/my_plugs/start/nerdtree/doc
在安裝說明之後,會在doc文件夾之下出現一個tags的文件,這個文件就是剛纔安裝的說明文件,這樣Vim的內部幫助系統就可以使用它的內容了,現在我們可以在vim中通過下面的命令來查看某一個插件的幫助文檔了:
:help plug_name(插件名稱)
或者你也可以在包加載之後運行一次
:helptags ALL,
該命令會處理runtimepath下的所有文檔。關於什麼是 runtimepath,請參見前面的一篇文章,系列文章一。
1.3 插件的開啓與關閉
有一些插件只要安裝之後就會自動起作用,比如我們的 vim-airline,安裝之後直接重新啓動vim就能夠發現彩色的狀態欄了,但是有一些插件需要自己手動開啓和關閉,就像我們的nerdtree,當我們安裝完nerdtree之後,我們發現重啓vim之後依然沒有開啓nerdtree,那怎麼辦呢?我們首先在 .vimrc 配置文件中設置開啓和關閉的按鍵映射,比如我的如下:
map <F3> :NERDTreeMirror<CR>
map <F3> :NERDTreeToggle<CR>
現在我再重啓,按 F3 按鈕就會啓動nerdtree了,再按F3就會關閉。
注意:有很多插件都需要自己在 .vimrc配置文件中進行配置纔會開啓的。
1.4 選擇性的加載插件
前面的插件安裝兩步走是針對start文件夾的,凡是安裝在start文件夾裏面的插件會在vim啓動的時候自動加載,如果我想選擇性的加載某一個插件,我就需要將其安裝在opt文件夾裏面,安裝的方式跟上面一樣,依然是兩步驟,“插件克隆”+“文檔說明”。
比如我安裝一個 vim-airline插件,兩步如下:
第一步:
cd ~/.vim/pack/my_plugs/opt/
git clone https://github.com/vim-airline/vim-airline.git
第二步:
:helptags ~/.vim/pack/my_plugs/opt/vim-airline/doc
第三步:選擇性加載,通過 :packadd 來完成
:packadd vim-airline
就可以了。
所以插件選擇性加載的方式爲:
:packadd plug_name(插件名稱)
總結:使用內置pack插件管理的好處
- 無需其他的插件管理工具,像什麼vundle,vim-plug等等;
- 直接方便實用git,方便下載、安裝與更新,不用時直接刪除即可;
注意:
在Windows平臺之下實際上也是一樣的道理,只不過文件夾的名稱和配置文件名稱稍有所不一樣。
平臺 | Linux | Windows |
配置文件 | .viminfo | _viminfo |
配置文件 | .vimrc | _vimrc |
文件夾 | .vim | vimfiles |
參考:
關於vim常用的插件以及基本配置參考:[VIM] VIM 實用插件整理
vim學習資料:https://wiki.archlinux.org/index.php/Vim_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)