教你用NeoBundle管理Vim插件
NeoBundle 是一個基於 Vundle 的項目,如同 Vundle,它們都可以安裝和升級插件。然而 NeoBundle 的說明文件上明確指出:「NeoBundle 不是一個穩定的插件管理器,如果你想要一個穩定的,請選擇 Vundle」。最新的 release-note 上也有警告「可能會造成兼容性問題」——這是一個開發者寫的註解,說明這個管理器還不能讓人放心使用。
所以,我們為什麼要使用 NeoBundle?它都不能保證穩定運行!好吧,它還是有可取之處的。Vundle 只支持 Git 這種版本控制系統,而 NeoBundle 可以支持 Subversion 和 Mercurial。另一個原因是如果你不想插件升級時破壞你的 Vim 生態環境,你可以鎖住 NeoBundle,讓它只使用某個插件的固定版本。
另外,NeoBundle 創建者,Shougo Matsuishita(LCTT:名字看著像日本人),正在將它的命令介面添加到其他插件項目,以便減少他們的命令使用量。現在 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 默認從 GitHub 下載並升級,如果你正好在使用 GitHub,你只需要為這個插件指定維護者的用戶名和路徑。在上面的配置中,NeoBundleFetch 只需要指定為「Shougo/neobundle.vim」,而不是完整的 GitHub 路徑。如果你想使用其他網站,比如是 Subversion 或 Mecurial 的網站,你就需要添加完整的 URL。
如果你想安裝其他插件,你可以使用下面的命令:
curl -k https://github.com/[項目維護者]/[插件路徑] > ~/.vim/bundle/[插件路徑]
舉個例子:你想安裝 vim-abolish,一個超級 NB 的文本搜索和替換插件,就使用下面的命令:
curl -k https://github.com/tpope/vim-abolish > ~/.vim/bundle/abolish
如果要讓它自動升級,在 NeoBundleFetch 那行下面添加一行:
NeoBundle 'tpope/vim-abolish'
再介紹一個小技巧:你可以為插件指定一個分支或版本號。什麼意思?NeoBundle 只會使用這個插件的某個分支或版本,而忽略其版本更新。如果你使用的某個插件處於高速開發過程,你就可以使用這個技巧,避免用到有 bug 的插件版本。舉個例子:
NeoBundle 'Shougo/vimshell', { 'rev' : '3787e5' }
還有一個技巧:在 .vimtc 文件內添加一行關於「NeoBundleCheck」的屬性。NeoBundle 會根據配置檢查沒安裝的插件,並提示你安裝它們。你也可以使用命令「:NeoBundleInstall」(LCTT:這是要在 Vim 編輯器的命令模式下輸入)來安裝或升級插件。
NeoBundle 用法
很多 NeoBundle 命令用起來和 Vundle 類似,但命令的名字不一樣。下面是 NeoBundle 命令的用法:
- :NeoBundleUpdate:安裝或升級插件,如果你手動把一個插件的目錄刪除了,這個命令會重新安裝這個插件。在這個命令後面加上插件名稱,就只升級一個插件;不加參數,會將所有己安裝但沒被記錄在案的插件給記錄下來。:NeoBundleInstall 命令效果相同。
- :NeoBundle {REPOSITORY URI} [[REVISION}] [,OPTIONS}]]:將一個插件鎖定到固定版本,防止胡亂升級。
- :NeoBundleList:列出所有未初始化的插件。
- :NeoBundleClean:進入交互界面,刪除插件。
這些命令在配合 unite.vim (LCTT:就是上面舉過的32個例子之一)使用時,效果會稍微有些出入。你可以使用「:help neobundle」命令了解更多信息。
是否使用 NeoBundle,自己決定
NeoBundle 是強大的工具,正處於高速開發狀態。任何處於這種狀態的項目,都會被帖上「有前途」和「不穩定」兩個標籤,看你自己怎麼選。如果你想要最新的穩定版本的插件,NeoBundle 能夠把 Vundle 和 Pathogen 甩出幾條街。
然而在線幫助文檔已經給出警告,它不是個穩定的產品,不及時更新版本可能造成一些插件運行出錯。最後,你需要在 .vimrc 文件為你的 Neoundle 和其他插件指定一個穩定的版本。記住這警告,然後你可以在使用這些尖端技術產品時遊刃有餘。
via: http://www.openlogic.com/wazi/bid/348084/Managing-Vim-extensions-with-NeoBundle
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive