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

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