有效的管理你的vim插件
作者: yetist 郵箱: yetist@gmail.com 內容
傳統的vim plugin使用方式
我們先來回顧一下傳統的vim plugin 管理方式。
- 安裝:
- 要安裝一個插件,首先要從網絡上下載回來,然后解壓、并放在~/.vim/下合適的目錄中,如plugin、syntax、ftplugin等。
- 升級:
- 經常使用的一些插件,可能需要過一段時間去vim.org上面看看有沒有新的版本,如果有的話,使用和安裝相同的方式來解壓覆蓋,從而完成更新工作。
- 卸載:
- 相對于安裝和更新,這個就比較麻煩了,尤其是你有太多的插件的話,你無法確定某個插件到底安裝了哪些文件,最壞的情況下,你可能需要下載一個原始版本來做參考,然后從你的~/.vim/目錄中把它們刪除干凈。
- 多臺電腦保持同步:
- 通常的方法是把原來的~/.vim目錄做個備份,然后在需要的時候把它整個復制過去。時間長了,這會產生問題,如果兩臺電腦中都做了修改(分別安裝了不同的插件或更新了某個插件),這時將無法準確的保持同步。
從長期使用vim及對vim plugin的經歷中,我感覺這是一種很費時費力且效率低下的工作。做個不太恰當的比喻,vim 插件的安裝方式就像在windows下面安裝軟件一樣,需要自己動手去網絡上尋找到某個插件,手工完成它的安裝、更新以及卸載工作。在多臺電腦上同步,除了重復這個過程,就是選擇互相復制的方式,效率極其低下。
高效的vim plugin使用方式
- 解決這個問題最理想的方式是:
- 借鑒linux管理軟件包的方式來管理vim的插件,只要知道插件的名字,通過運行一條命令就能自動進行安裝、升級或卸載工作。更進一步的,應該能支持自己寫給自己用的vim plugin,就像linux中第三方軟件倉庫一樣,只要告訴系統這個插件的地址,就能使用相同的插件管理命令來管理。
這樣做的好處顯而易見的,提升了效率,另外個人認為vim用戶的需求有時只是需要使用某個插件而已,并不需要關心這個插件應該放在plugin、syntax還是ftplugin目錄中。
有解決方案還要有工具支持才行,這個工具就是 vim-addon-manager 。(看著眼熟?說明你是debian/ubuntu用戶,因為debian上有個包就叫這個名字,但不是一回事)。
vim-addon-manager 的目標很KISS,就是管理vim plugin 的。 通過它可以在線安裝vim.org 網站上的任何一個插件,只要運行一條命令即可,它會自動從vim.org 網站下載插件,并解壓安裝。它對每個插件使用不同的目錄,這樣卸載時只要刪除那個插件的目錄即可。這個插件不僅僅能支持vim.org上面已有的插件,還支持存放在其它地方的插件,不管是壓縮包還是 SCM 形式,目前支持的SCM 包括git、svn、bzr等等。存放在其它地方的vim 插件需要聯系作者來注冊它,使它成為官方直接支持的插件。如果不做官方注冊,你也可以像第三方源那樣使用用,區別就是受眾比較小,可能就你一個人用而已。
安裝 vim-addon-manager
vim-addon-manager 本身也是一個vim plugin, 所以首先要安裝它。
mv ~/.vim ~/vim mkdir ~/.vim mkdir ~/.vim/addons [ 1 ] _ cd ~/.vim/addons git clone git://github.com/MarcWeber/vim-addon-manager.git [ 2 ] _ git clone git://github.com/MarcWeber/vim-addon-manager-known-repositories.git [ 3 ] _在文件中加入以下內容
fun SetupVAM () set runtimepath +=~ /.vim/ addons/ vim - addon - manager [ 4 ]_ call vam#ActivateAddons ( [ \ 'a.vim_-_Alternate_Files_quickly_.c' , \ 'taglist' , \ ] ) [ 5 ]_ endf call SetupVAM ()
[1] 創建一個保存vim addon的目錄,如果愿意,也可以創建成這樣 ~/vim-addon
[2] 在addons 目錄中下載最新的vim-adon-manager 代碼
[3] 在addons 目錄中下載最新的vim-adon-manager-known-repositories 代碼,這個插件包含了作者收集到的大量vim plugin 的注冊信息
[4] 設置 vimruntimepath 路徑,在指定的目錄中需要有 vim-addon-manager 插件代碼存在
[5] 在這里我們默認激活了兩個vim 插件:a.vim 和 taglist 使用 vim-addon-manager
現在 vim-addon-manager 已經安裝好了, vim-addon-manager 管理vim plugin 使用這些命令:
- InstallAddons {name} ...
- 從網絡安裝指定的插件。 通常情況下,應該使用ActivateAddons 命令直接激活。只有在需要了解插件包含的文件列表時才使用這個命令先安裝,后激活。
- ActivateAddons {name} ...
- 激活指定的插件。 如果插件沒有安裝,則先從網絡下載安裝,然后激活。
- ActivateInstalledAddons {name} ...
- 激活指定的插件 指定的插件已經被安裝,但沒有激活。這個命令和ActivateAddons 命令的區別僅在于只補全已經安裝的插件。
- UpdateAddons [{name} ...]
- 更新指定的插件到最新版本。 如果沒有參數則更新所所有已安裝插件。
- UninstallNotLoadedAddons {name} ...
- 卸載指定的插件。
測試 vim-addon-manager
安裝
先安裝一個最常用的插件taglist 和 a.vim
: InstallAddons taglist : ActivateAddons taglist : ActivateAddons a.vim_ - _Alternate_Files_quickly_. c通過 InstallAddons 來安裝taglist可以看到 taglist 包含的文件。 這兩個文件都被安裝到了前面設置的目錄中了:
/home/yetist/.vim/ |-- addons | |-- a.vim_-_Alternate_Files_quickly_.c | |-- taglist | |-- vim-addon-manager | `-- vim-addon-manager-known-repositories `-- vimrc
更新:
更新taglist 到最新版本
: UpdateAddons taglist
Note
vim-addon-manager 和 vim-addon-manager-known-repositories 這兩個插件也可以使用 UpdateAddons 命令來更新,更新時會自動調用 git pull 命令。
測試
測試一下taglist 插件
: Tlist
卸載
卸載taglist 插件
: UninstallNotLoadedAddons taglist
卸載之后taglist 插件被從addons 目錄中刪除了:
/home/yetist/.vim/ |-- addons | |-- a.vim_-_Alternate_Files_quickly_.c | |-- vim-addon-manager | `-- vim-addon-manager-known-repositories `-- vimrcNote
使用 ActivateAddons 命令激活的插件在下一次啟動 vim 時,并不會自動激活,要想讓每次使用vim 時都自動激活,需要修改 ~/.vimrc文件,把它加入到 call vam#ActivateAddons() 的參數列表中。
使用 vim-addon-manager 自定義源
凡是在 vim-addon-manager-known-repositories 中注冊過的vim plugin 都可以直接使用,但是在一些情況下可能你需要使用沒有被注冊的 vim 插件,比如自己寫的差不多只給自己用的插件,或者想一直使用某個插件的開發版本。
這種情況就屬于使用 vim-addon-manager 的自定義源了,如果插件的開發版本支持 vim-addon-manager , 那么你只需要在 ~/.vimrc 文件中設置一個變量就行了。 比如 vimim 現在已經支持 vim-addon-manager 了,你需要做的就是加入下面這行內容在你的 ~/.vimrc 文件中:
let g:vim_addon_manager[ 'plugin_sources' ][ 'vimim' ] = { "type" : "svn" , "url":"http://vimim.googlecode.com/svn/trunk"}同時把"vimim" 加入到 call vam#ActivateAddons() 的參數列表中即可。
現在請把你之前的 vim 插件都整理一下吧,使用 vim-addon-manager 來管理。
記得開始我們說過多臺電腦間的同步問題,現在看來,同步就很簡單了,因為只要同步一個 ~/.vimrc 文件就夠了。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
