Vundle,Vim 的 Bundle(轉)
長久以來,我管理 Vim 配置的方式都非常原始—— zip 打包,然後發到郵箱上。偶爾會發生忘記備份,或者配置混淆的狀況,不過由於懶筋發作,竟然這個方案就這麼用了兩年。
終有一天,我覺得這個方法太笨了,作爲一個高效程序員怎麼能使用這麼純手工的備份方案,Vim 可是我的吃飯家伙啊。
Vim 配置備份最麻煩的部分就是腳本管理了,如果不先解決腳本管理,多次安裝/卸載 Vim 腳本之後配置文件夾肯定亂糟糟的。於是我去找有什麼潮流的插件管理方案,找到了最好的工具:Vundle(項目頁)。
說它最好是基於幾個理由:
- 靈感來源於 Ruby 社區的 Bundle 工具,語法相似。
- 配置乾淨,只需在 .vimrc 裏面寫入需要安裝的腳本,就可以使 Vim 自動安裝。
- 可以從 github 上安裝 Vim 腳本
詳細的使用可以參考項目頁的教程。
由於 Vundle 從安裝到使用都非常適合腳本化,所以我在學會這個工具之後馬上寫了一個安裝腳本,加上我的 .vimrc 等文件,放到了 github(chloerei/vimrc)上。
現在我想要在一臺新電腦還原我的 vim 配置,只要確保有 vim,ruby,rake,rvm 的情況下,運行以下命令:
git clone git@github.com:chloerei/vimrc.git
cd vimrc
rake deploy
我熟悉的配置就會部署到電腦上。
不妨講解一下 Rakefile 文件,這是 rake
deploy
魔法的祕密。
desc "deploy vimrc"
task :deploy do
# Bundle and scripts
system 'git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle'
system 'cp .vimrc .gvimrc ~/'
system 'vim +BundleInstall +qa'
system 'cd ~/.vim/bundle/Command-T/ruby/command-t/; rvm system do ruby extconf.rb; make; cd -'
# snipmate-snippets
system 'git submodule init; git submodule update'
system 'cd snipmate-snippets/; rake deploy_local; cd -'
end
第 1~3 個 system 命令安裝了 vundle,並且打開 vim 使用 BundleInstall 命令安裝所有寫在 .vimrc 裏的腳本。 第 4 個 system 命令對 Command-T 這個腳本進行了本地編譯。 最後 2 個 system 命令用 git submodule 抓取了我放在另外的 github 源的 snipmate 代碼片段。
由於我對 Rake 畢竟熟悉,所以腳本用了 Rakefile 的形式,其他開發者完全可以用 make 或者 bash 來寫腳本。而除了 1~3 個 system 調用,後面的處理都是可選的,取決於需要什麼 vim scrpit。
每個 Vimer 都有自己的喜好配置,我這份配置只算拋磚引玉,重要的是用 vundle + github 的備份方案。所以,行動起來吧,備份你的 vimrc。