Vim 实用技术,第 2 部分: 常用插件
2.1. gzip(壓縮文件支持)
作者:Bram Moolenar
網(wǎng)站腳本編號(hào):無(包含在 Vim 的標(biāo)準(zhǔn)發(fā)布之中)
安裝說明:無
功能說明:
該腳本使得 Vim 可以直接打開使用 gzip [1]、bzip2 [2] 和 compress [3] 壓縮的文件(要求存在相應(yīng)的命令行工具)。后綴為“.gz”、“.bz2”和“.Z”的文件會(huì)在打開時(shí)被動(dòng)態(tài)解壓縮,并在寫操作時(shí)被自動(dòng)重新壓縮。
打開壓縮文件時(shí),屏幕上出現(xiàn)一個(gè)(不正確的)“[noeol]”的提示是正常的,不必進(jìn)行理睬。
2.2. netrw(網(wǎng)絡(luò)文件支持)
作者:Charles E. Campbell, Jr.(綽號(hào) Dr. Chip)
網(wǎng)站腳本編號(hào):1075(Vim 的標(biāo)準(zhǔn)發(fā)布之中可能包含一個(gè)較老的版本)
安裝說明:
Vim 6.4 的標(biāo)準(zhǔn)發(fā)布帶的版本是 42,較老、功能不齊全,但無須安裝。建議:
1. 在 Vim 網(wǎng)站上下載版本 62(更新的版本只能用于 Vim 7);
2. 使用“tar xvfj netrw.tar.bz2 -C ~/.vim”解開;
3. 在Vim中運(yùn)行“:helptags ~/.vim/doc”安裝文檔。
功能說明:
支持直接讀寫網(wǎng)絡(luò)上的文件,支持的協(xié)議有 ftp、http、rsync、scp 等。比如,使用 FTP 協(xié)議以用戶名 adah 打開服務(wù)器 server 上 ~/temp 目錄下的 test.cpp 文件,可以直接在命令行上使用:
vim ftp://adah@server/temp/test.cppVim會(huì)自動(dòng)提示用戶輸入口令,然后打開文件。
更多的幫助內(nèi)容請(qǐng)參考“:help netrw”。
2.3. engspchk(英文拼寫檢查)
作者:Charles E. Campbell, Jr.(綽號(hào)Dr. Chip)
網(wǎng)站腳本編號(hào):195
安裝說明:
在 Vim 網(wǎng)站上下載最新版本(engspchk.tar.gz);
使用“tar xvfz engspchk.tar.gz -C ~/.vim”解開;
在Vim中運(yùn)行“:helptags ~/.vim/doc”安裝文檔。
提示替換拼寫功能需要 agrep [4],可能需要另外下載安裝。
功能說明:
一個(gè)Vim專用的拼寫檢查器,其最主要的特點(diǎn)是:
- 可以通過變量 spchkdialect 選擇英語變體(英國、美國、加拿大),對(duì)于找不到的詞、不常見的詞、不在當(dāng)前英語變體中的詞以不同的方式加亮顯示;
- 支持用戶詞典(保存在 .vim/CVIMSYN 目錄中)和項(xiàng)目詞典(保存在被檢查文件所在的目錄中);
- 對(duì)于源代碼文件,只對(duì)注釋進(jìn)行拼寫檢查,而不會(huì)對(duì)你的變量名稱胡亂提抗議;
- 通過詞典文件可支持除英語以外的其它語言。
圖 5 中的窗口里 engspchk 正在運(yùn)行中。其中可以看到,紅色部分是插件所不能識(shí)別的單詞,黃色部分是當(dāng)前英文變體(缺省是美國英語)中不正確的拼法,而青色部分是很少見的單詞。圖中運(yùn)行的是包含圖形界面支持的 Vim,因而還可以看到一個(gè)名為 DrChip 的菜單項(xiàng)(參見圖6),在其中可通過菜單選擇拼寫檢查相關(guān)的各項(xiàng)功能;同時(shí)還能看到快捷鍵:“\ec”開始拼寫檢查,“\ee”結(jié)束拼寫檢查,“\ea”選擇替換拼寫,等等。在文本模式的 Vim 中,我們一般就只使用這些快捷鍵了。
圖 5
圖 6
更多的幫助內(nèi)容請(qǐng)參考“:help engspchk”。
2.4. calendar(日歷顯示)
作者:Yasuhiro Matsumoto
網(wǎng)站腳本編號(hào):52
安裝說明:
在 Vim 網(wǎng)站上下載文件 calendar.vim,存到 ~/.vim/plugin 目錄中。
功能說明:
圖 6 的下半部分就是 calendar 的運(yùn)行示例,是直接在正常模式下鍵入“\caL”顯示出來的。光標(biāo)在該窗口中時(shí),可使用左箭頭或上箭頭顯示前一個(gè)月,右箭頭或下箭頭顯示后一個(gè)月,“t”回到“今天”,“q”關(guān)閉日歷窗口。在有鼠標(biāo)支持時(shí),也可以使用鼠標(biāo)在黃色字樣的“Prev”、“Today”、“Next”上雙擊達(dá)到類似的效果。
除使用“\caL”外,“\cal”也可以打開一個(gè)日歷窗口,但顯示位置是在 Vim 的左側(cè)而不是下方。另外,命令“:Calendar”效果和“\cal”相同,但其后可以跟參數(shù):一個(gè)參數(shù)的話表示月份,兩個(gè)參數(shù)的話則分別表示年份和月份。“:CalendarH”與“:Calendar”類似,但日歷窗口的打開位置和“\caL”(而不是“\cal”)一樣,是在下方而不是左側(cè)。
2.5. project(文件的“項(xiàng)目”管理)
作者:Aric Blumer
網(wǎng)站腳本編號(hào):69
安裝說明:
1. 在 Vim 網(wǎng)站上下載最新版本(project-1.3.tar.gz);
2. 使用“tar xvfz project-1.3.tar.gz -C ~/.vim”解開;
3. 在 Vim 中運(yùn)行“:helptags ~/.vim/doc”安裝文檔。
功能說明:
該插件可以把文件組織成一棵樹的形式,以便于查找和管理。使用命令“:Project”即可打開一個(gè)用戶的“項(xiàng)目文件”(~/.vimprojects)。項(xiàng)目文件采用普通的文本文件的形式,非常易于瀏覽和修改。圖 7 是一個(gè)示例。其中左邊窗口部分的就是一棵項(xiàng)目樹,完整內(nèi)容如下:
圖 7
CvsMenu="~/.vim" CD=. {plugin/cvsmenu.vimdoc/cvsmenu.txt } Nvwa="~/nvwa_local" CD=. {doc=doc {ChangeLogREADMEwebupdate.sh}nvwa=nvwa {bool_array.cppdebug_new.cppmem_pool_base.cppstatic_mem_pool.cppbool_array.hclass_level_lock.hcont_ptr_utils.hdebug_new.hfast_mutex.hfixed_mem_pool.hmem_pool_base.hobject_level_lock.hpctimer.hset_assign.hstatic_assert.hstatic_mem_pool.h} }
在這個(gè)項(xiàng)目文件中存在兩個(gè)項(xiàng)目:CvsMenu 和 Nvwa。引號(hào)中的內(nèi)容表示路徑,“CD=.”則表示打開該項(xiàng)目中的文件時(shí),當(dāng)前目錄會(huì)更改到項(xiàng)目所在的目錄。項(xiàng)目下面可以再分子項(xiàng)目,如 Nvwa 項(xiàng)目下有 doc 和 nvwa 兩個(gè)子項(xiàng)目,沒有“CD=.”表示打開子項(xiàng)目里的文件時(shí)不再更改當(dāng)前目錄。
圖中并沒有顯示出完整的內(nèi)容,因?yàn)槠渲械膬?nèi)容可以折疊(缺省打開項(xiàng)目文件時(shí)是完全折疊起來的,即在上面的例子中,只能看到兩個(gè)項(xiàng)目的名字“CvsMenu”和“Nvwa”)。在非文件名行上使用鼠標(biāo)雙擊或回車鍵可以進(jìn)行展開或折疊,在文件名行上使用鼠標(biāo)雙擊或回車鍵則可以打開對(duì)應(yīng)的文件。
更多的幫助內(nèi)容請(qǐng)參考“:help project”。
2.6. taglist(源代碼結(jié)構(gòu)瀏覽)
作者:Yegappan Lakshmanan
網(wǎng)站腳本編號(hào):273
安裝說明:
1. 確保機(jī)器上有一個(gè)可用的 Exuberant Ctags 的版本(可以執(zhí)行命令“ctags”)
2. 在 Vim 網(wǎng)站上下載 taglist(假設(shè)為 taglist.zip);
3. 使用“unzip taglist.zip -d ~/.vim”解開;
4. 在 Vim 中運(yùn)行“:helptags ~/.vim/doc”安裝文檔。
雖然 taglist 使用 ctags,但并不要求 tags 文件的存在。
功能說明:
使用命令“:Tlist”啟用/關(guān)閉 taglist,效果請(qǐng)先看一下圖 8。Taglist 的主要特性有:
圖 8
- 可以顯示宏(macro)、函數(shù)(function)、變量(variable)、類型定義(typedef)、類(class)、結(jié)構(gòu)(struct)等多種內(nèi)容信息;
- 打開多個(gè)文件時(shí),可以同時(shí)看到多個(gè)文件的結(jié)構(gòu)信息;
- 在左邊的 taglist 窗口顯示的名稱上雙擊鼠標(biāo)或按回車鍵,右邊主窗口中會(huì)跳轉(zhuǎn)到相應(yīng)的定義位置;
- 右邊窗口中光標(biāo)的位置改變,左邊的窗口也會(huì)在 4 秒內(nèi)(缺省值,參見“:help 'updatetime'”)黃色加亮顯示相應(yīng)的名稱;
- 在啟用/關(guān)閉 taglist 時(shí),插件能夠自動(dòng)改變當(dāng)前 Vim 窗口的大小(不管是文本模式的 Vim 還是圖形界面的 Vim),除非使用“:let Tlist_Inc_Winwidth=0”關(guān)閉這一功能(當(dāng)使用這一功能導(dǎo)致兼容性問題時(shí))。
更多的幫助內(nèi)容請(qǐng)參考“:help taglist”。
2.7. cvsmenu(CVS集成)
作者:Thorsten Maerz/吳詠煒
網(wǎng)站腳本編號(hào):1245
安裝說明:
1. 在 Vim 網(wǎng)站上下載文件 cvsmenu.vim,存到 ~/.vim/plugin 目錄中;
2. 啟動(dòng) gvim,在菜單中選擇“CVS-Settings-Install-Install updates”(文本模式的 Vim 可以使用快捷鍵“,cgii”),從網(wǎng)上(SourceForge)的 CVS 中安裝最新版本和幫助文檔(此步驟可選)。
功能說明:
在 Vim 中集成 CVS [24]版本管理功能。該插件最初由 Thorsten Maerz 編寫,在 2002 年以來沒有再得到維護(hù)。我在 2005 年初開始使用這個(gè)插件后,非常喜歡它,修正了其中存在的錯(cuò)誤,并一直維護(hù)該插件。如果大家發(fā)現(xiàn)有 bug,報(bào)告給我就可以了。
主要功能可在圖 9 的菜單中看到:
圖 9
- 了解 CVS 環(huán)境的基本信息和 cvsmenu 中的變量設(shè)定(參見圖 10);
圖 10
- 調(diào)整設(shè)定,安裝更新版本;
- 插入 CVS 的可擴(kuò)展關(guān)鍵字,如“$Date$”、“$Id$”;
- 對(duì)目錄進(jìn)行基本操作(cvs update 等);
- 接受附加參數(shù)的基本操作(文件比較等);
- 管理功能,如登錄;
- 刪除類操作;
- 打標(biāo)簽;
- 觀察(跟蹤)和編輯功能;
- 將本地文件和 CVS 中的文件進(jìn)行比較(以 Vim 的分左右兩列使用顏色加亮顯示修改、增加、刪除部分的比較方式;效果參見圖 11);
圖 11
- 顯示文件每一行的更改人和更改時(shí)間(cvs annotate,參見圖 12);
圖 12
- 顯示庫的訪問歷史(cvs history);
- 顯示文件修訂日志(cvs log;參見圖 13);
圖 13
- 顯示文件狀態(tài);
- 顯示較短的文件狀態(tài);
- 根據(jù)本地信息顯示文件狀態(tài)(不訪問庫);
- 簽出模塊(cvs checkout);
- 查詢更新;
- 更新,如有沖突會(huì)高亮顯示(cvs update);
- 取消修改;
- 添加當(dāng)前文件到 CVS 中(cvs add);
- 簽入當(dāng)前文件(cvs commit);
- 導(dǎo)入文件(cvs import);
- 添加并簽入當(dāng)前文件。
根據(jù)實(shí)際使用的需要,除了修訂錯(cuò)誤之外,我加入了一些編碼相關(guān)的支持。拿一個(gè)最實(shí)際的情況,如果使用“set encoding=utf-8”,但源代碼中仍使用了 GBK 編碼的中文字符,那么,必須在 .vimrc 中加入一行“l(fā)et g:CVScvsoutputencoding='gbk'”才能保證“cvs annotate”操作的結(jié)果是正確的。
Thorsten 把該插件的易用性設(shè)計(jì)得相當(dāng)好。舉例來說,在作文件比較時(shí),按 Tab 可跳轉(zhuǎn)到下一個(gè)不同處,左側(cè)的比較窗口中按一下“q”即可關(guān)閉該窗口。更多的幫助內(nèi)容請(qǐng)參考“:help cvsmenu”。
2.8. doxygen(文檔注釋語法加亮)
作者:Michael Geddes
網(wǎng)站腳本編號(hào):5
安裝說明:
1. 在 Vim 網(wǎng)站上下載最新版本(doxygen.zip);
2. 使用“unzip doxygen.zip”解開;
3. 執(zhí)行“cp -p doxygen.vim ~/.vim/syntax”和“cp -p doxygen.txt ~/.vim/doc”復(fù)制文件到 Vim 目錄下;
4. 在 Vim 中運(yùn)行“:helptags ~/.vim/doc”安裝文檔。
5. 如果 ~/.vim/after/syntax 目錄不存在,使用“mkdir -p ~/.vim/after/syntax”創(chuàng)建該目錄;
6. 進(jìn)入 ~/.vim/after/syntax 目錄,使用下面三行創(chuàng)建語法文件之間的關(guān)聯(lián),使得在 C、C++ 和Java 文件中可以識(shí)別文檔注釋:
ln -s ../../syntax/doxygen.vim c.vim ln -s ../../syntax/doxygen.vim cpp.vim ln -s ../../syntax/doxygen.vim java.vim"
6. 可選地,看一下我的個(gè)人編程網(wǎng)頁 [6] 下有沒有對(duì) doxygen.vim 的更新(里面包含有作者尚未并入到標(biāo)準(zhǔn)發(fā)布中去的我的更改——好奇的話,你可以在 doxygen.vim 文件中數(shù)一下,看一看 Wu Yongwei 的名字出現(xiàn)了幾次:-))。
功能說明:
如果你用過文檔注釋,相信我不需要多說,看一下圖 14你就知道這個(gè)腳本的功能了。如果你沒有用過文檔注釋,強(qiáng)烈建議你到 Doxygen [7] 的網(wǎng)站上看一下,了解一下這個(gè)非常有用的工具。作為示例,可在http://nvwa.sourceforge.net/doc/debug__new_8cpp.html#a17?看一下圖中的代碼使用 Doxygen 自動(dòng)生成的 HTML 網(wǎng)頁。
圖 14
2.9. matrix(!)
作者:Don Yang
網(wǎng)站腳本編號(hào):1189
安裝說明:
在 Vim 網(wǎng)站上下載文件 matrix.vim,存到 ~/.vim/plugin 目錄中即可。
功能說明:
是的,說的就是電影 Matrix!Vim 的腳本并不是都干“正經(jīng)事”的。想看一下電影里那些酷酷的字符在 Vim 的窗口里翻滾嗎?發(fā)一個(gè)命令“:Matrix”即可(按任意鍵退出)。效果見圖 15。
圖 15
參考資料
[1] The gzip home page:?http://www.gzip.org/
[2] bzip2:?http://www.bzip.org/
[3] Compress for UNIX:?http://www.answers.com/compress#Wikipedia
[4] agrep:?http://www.answers.com/agrep
[5] CVS-Concurrent Versions System:?http://www.nongnu.org/cvs/
[6] Wu Yongwei's Programming Page:?http://wyw.dcweb.cn/
[7] Doxygen:?http://www.stack.nl/~dimitri/doxygen/
from:?https://www.ibm.com/developerworks/cn/linux/l-tip-vim2/
總結(jié)
以上是生活随笔為你收集整理的Vim 实用技术,第 2 部分: 常用插件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vim 实用技术,第 1 部分: 实用技
- 下一篇: Vim 实用技术,第 3 部分: 定制