套件管理是個很棒的機制,它可以讓人們省去不少尋找、下載、安裝、更新的時間。Vim 近來更發展出以 GitHub 為主的套件管理系統 vundle, NeoBundle。以下就由凍仁為大家簡介 NeoBundle 的使用方法 (本文同步發佈於 凍仁的筆記)。
原生的 Vim 已經很棒了,但為了讓它更好用,我們可以藉由擴充套件 (plugin) 來加速開發及編寫文章的速度。但隨著 plugin 的增長我們會更難管理,這時只需多裝個套件管理員 (Vim plugin manager) 就可解決此難題。
NeoBundle 是個基於 Vundle 而發展的 Vim plugin manager。只需編寫一個設定檔就可以管理所有的 plugin。除了可省去個別安裝的時間,也可透它進行更新 (:NeoBundleUpdate)、重新安裝 (:NeoBundleReinstall) 及觀看紀錄 (:NeoBundleLog) ... 等,就好比 Firefox, Google Chrome 一樣。
建立 bundle 目錄。
$ mkdir -p ~/.vim/bundle
下載 NeoBundle plugin。
$ git clone git://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim
於 .vimrc 最下方新增以下程式碼。
$ vi ~/.vimrc
......
if has('vim_starting')
set nocompatible " Be iMproved
set runtimepath+=~/.vim/bundle/neobundle.vim/
endif
call neobundle#rc(expand('~/.vim/bundle/'))
" Let NeoBundle manage NeoBundle
NeoBundleFetch 'Shougo/neobundle.vim'
" Recommended to install
" After install, turn shell ~/.vim/bundle/vimproc, (n,g)make -f your_machines_makefile
NeoBundle 'Shougo/vimproc'
" My Bundles here:
"
" Note: You don't set neobundle setting in .gvimrc!
" Original repos on github
" -> TO DO <-
filetype plugin indent on " Required!
"
" Brief help
" :NeoBundleList - list configured bundles
" :NeoBundleInstall(!) - install(update) bundles
" :NeoBundleClean(!) - confirm(or auto-approve) removal of unused bundles
" Installation check.
NeoBundleCheck
請於 -> TO Do <- 中加入欲安裝的套件,套件路徑請參考 GitHub 上的 Vim Plugins 網址 (例如 nerdtree 的網址為 https://github.com/scrooloose/nerdtree 其套件路徑即為 'scrooloose/nerdtree')。
" 例如:
NeoBundle 'othree/html5.vim'
NeoBundle 'BBCode--Dahn'
NeoBundle 'plasticboy/vim-markdown'
......
執行 Vim 並使用 :NeoBundleInstall 安裝各個 plugin。
最後,凍仁的套件列表已發布至 GitHub 上,若有不錯的 plugin 也請告知凍仁,謝謝。
在.vimrc裏,**"**雙引號是註解的意思嗎?
這樣寫,是每次開啟vim時,都會檢查嗎?
如果套件的路徑修改,會讓vim開不起來嗎?
在.vimrc裏,"雙引號是註解的意思嗎?
是的,vimrc 的註解符號為 '"'。
這樣寫,是每次開啟vim時,都會檢查嗎?
您所謂的檢查是指更新嗎?上方的設定得使用 :NeoBundleUpdate 手動更新,不過若想停用些 plugin 是可以把 neobundle 'plugin' 這段註解起來。
如果套件的路徑修改,會讓vim開不起來嗎?
如果把 ~/.vim/bundle 移至別的地方,那上方所有的 ~/.vim/bundle 皆需更正才行。
如果套件的路徑修改,會讓vim開不起來嗎?
不至於開不起來,頂多沒了這些 plugin 的功能罷了。