教你用NeoBundle管理Vim插件
我們?yōu)槭裁匆褂貌寮芾砥鳎縑im 支持大量插件,但是由于它沒有嚴(yán)格定義框架,插件的文件可以胡亂分布在不同目錄下,導(dǎo)致用戶管理起來會很困難(LCTT:當(dāng)然,前提是你有很多插件,還有點小小的強迫癥,覺得理一理這些插件心里會舒服點)。而一款插件管理器能讓管理變得簡單許多。Pathogen, Vundle 和 NeoBundle 的工作就是為不同插件建立一個目錄,然后將這些目錄扔到 ~/.vim/bundle 目錄下。這個文件整理方法可以讓你方便徹底地刪除插件,使用 'rm -rf <插件目錄>' 或直接在文件管理器里面把插件所在的目錄刪除就可以了,絕對綠色環(huán)保無殘留。同時,這種方法還能***程度避免插件與插件之間的不兼容性。
NeoBundle 是一個基于 Vundle 的項目,如同 Vundle,它們都可以安裝和升級插件。然而 NeoBundle 的說明文件上明確指出:“NeoBundle 不是一個穩(wěn)定的插件管理器,如果你想要一個穩(wěn)定的,請選擇 Vundle”。***的 release-note 上也有警告“可能會造成兼容性問題”——這是一個開發(fā)者寫的注解,說明這個管理器還不能讓人放心使用。
所以,我們?yōu)槭裁匆褂?NeoBundle?它都不能保證穩(wěn)定運行!好吧,它還是有可取之處的。Vundle 只支持 Git 這種版本控制系統(tǒng),而 NeoBundle 可以支持 Subversion 和 Mercurial。另一個原因是如果你不想插件升級時破壞你的 Vim 生態(tài)環(huán)境,你可以鎖住 NeoBundle,讓它只使用某個插件的固定版本。
另外,NeoBundle 創(chuàng)建者,Shougo Matsuishita(LCTT:名字看著像日本人),正在將它的命令接口添加到其他插件項目,以便減少他們的命令使用量?,F(xiàn)在 NeoBundle 支持3種插件:unite.vim,Vim 使用的文件和緩存管理器;vimshell.vim,Vim 使用的腳本程序;vimproc.vim,運行于 vimshell.vim 中,用于對異步事件的支持。上面說的都是特殊案例,缺少英文文檔,所以用戶希望有人能完善它們。在正式使用它們之前,我們需要把注意力先集中在一些基本操作上。
安裝并初始化 NeoBundle
NeoBundle 支持 Vim 7.2.051 或更高版本,需要 git 和 cURL(用于下載文件)。你可以手動下載 NeoBundle,也可以使用 cURL 下載它在 GitHub 上的庫。在你的 home 目錄下使用如下命令,可以將 NeoBundle 插件下載到 .vim/bundle/neobundle.vim 目錄里,然后 NeoBundle 就能管理它自己了。
curl https://raw.githubusercontent.com/Shougo/neobundle.vim/master/bin/install.sh | sh
你還需要修改 .vimrc 文件。NeoBundle 的 GitHub 主頁提供一個 .vimrc 范本,但是直接使用這個范本,NeoBundle 需要你安裝5個可能不需要插件。如果不需要它們,你可以使用下面的最小配置:
if has('vim_starting')
set nocompatible
set runtimepath+=~/.vim/bundle/neobundle.vim/
call neobundle#begin(expand('~/.vim/bundle/'))
NeoBundleFetch 'Shougo/neobundle.vim'
call neobundle#end()
filetype plugin indent on
上述配置的作用是:啟動 NeoBundle 并且像其他插件一樣升級自己。NeoBundle 默認(rèn)從 GitHub 下載并升級,如果你正好在使用 GitHub,你只需要為這個插件指定維護(hù)者的用戶名和路徑。在上面的配置中,NeoBundleFetch 只需要指定為“Shougo/neobundle.vim”,而不是完整的 GitHub 路徑。如果你想使用其他網(wǎng)站,比如是 Subversion 或 Mecurial 的網(wǎng)站,你就需要添加完整的 URL。
如果你想安裝其他插件,你可以使用下面的命令:
curl -k https://github.com/[項目維護(hù)者]/[插件路徑] > ~/.vim/bundle/[插件路徑]
舉個例子:你想安裝 vim-abolish,一個超級 NB 的文本搜索和替換插件,就使用下面的命令:
curl -k https://github.com/tpope/vim-abolish > ~/.vim/bundle/abolish
如果要讓它自動升級,在 NeoBundleFetch 那行下面添加一行:
NeoBundle 'tpope/vim-abolish'
再介紹一個小技巧:你可以為插件指定一個分支或版本號。什么意思?NeoBundle 只會使用這個插件的某個分支或版本,而忽略其版本更新。如果你使用的某個插件處于高速開發(fā)過程,你就可以使用這個技巧,避免用到有 bug 的插件版本。舉個例子:
NeoBundle 'Shougo/vimshell', { 'rev' : '3787e5' }
還有一個技巧:在 .vimtc 文件內(nèi)添加一行關(guān)于“NeoBundleCheck”的屬性。NeoBundle 會根據(jù)配置檢查沒安裝的插件,并提示你安裝它們。你也可以使用命令“:NeoBundleInstall”(LCTT:這是要在 Vim 編輯器的命令模式下輸入)來安裝或升級插件。
NeoBundle 用法
很多 NeoBundle 命令用起來和 Vundle 類似,但命令的名字不一樣。下面是 NeoBundle 命令的用法
NeoBundleUpdate:安裝或升級插件,如果你手動把一個插件的目錄刪除了,這個命令會重新安裝這個插件。在這個命令后面加上插件名稱,就只升級一個插件;不加參數(shù),會將所有己安裝但沒被記錄在案的插件給記錄下來。:NeoBundleInstall 命令效果相同。
NeoBundle {REPOSITORY URI} [[REVISION}] [,OPTIONS}]]:將一個插件鎖定到固定版本,防止胡亂升級
NeoBundleList:列出所有未初始化的插件。
NeoBundleClean:進(jìn)入交互界面,刪除插件。
這些命令在配合 unite.vim (LCTT:就是上面舉過的32個例子之一)使用時,效果會稍微有些出入。你可以使用“:help neobundle”命令了解更多信息。
是否使用 NeoBundle,自己決定
NeoBundle 是強大的工具,正處于高速開發(fā)狀態(tài)。任何處于這種狀態(tài)的項目,都會被帖上“有前途”和“不穩(wěn)定”兩個標(biāo)簽,看你自己怎么選。如果你想要***的穩(wěn)定版本的插件,NeoBundle 能夠把 Vundle 和 Pathogen 甩出幾條街。
然而在線幫助文檔已經(jīng)給出警告,它不是個穩(wěn)定的產(chǎn)品,不及時更新版本可能造成一些插件運行出錯。***,你需要在 .vimrc 文件為你的 Neoundle 和其他插件指定一個穩(wěn)定的版本。記住這警告,然后你可以在使用這些***技術(shù)產(chǎn)品時游刃有余。
via: http://www.openlogic.com/wazi/bid/348084/Managing-Vim-extensions-with-NeoBundle