轉自:http://www.ibm.com/developerworks/cn/linux/l-tip-vim2/index.html
2.1. gzip(壓縮檔支援)
作者:Bram Moolenar
網站指令碼編號:無(包含在 Vim 的標準發布之中)
安裝說明:無
功能說明:
該指令碼使得 Vim 可以直接開啟使用 gzip [1]、bzip2 [2] 和 compress [3] 壓縮的檔案(要求存在相應的命令列工具)。尾碼為“.gz”、“.bz2”和“.Z”的檔案會在開啟時被動態解壓縮,並在寫操作時被自動重新壓縮。
開啟壓縮檔時,螢幕上出現一個(不正確的)“[noeol]”的提示是正常的,不必進行理睬。
2.2. netrw(網路檔案支援)
作者:Charles E. Campbell, Jr.(綽號 Dr. Chip)
網站指令碼編號:1075(Vim 的標準發布之中可能包含一個較老的版本)
安裝說明:
Vim 6.4 的標準發布帶的版本是 42,較老、功能不齊全,但無須安裝。建議:
1. 在 Vim 網站上下載版本 62(更新的版本只能用於 Vim 7);
2.使用“tar xvfj netrw.tar.bz2 -C ~/.vim”解開;
3.在Vim中運行“:helptags ~/.vim/doc”安裝文檔。
功能說明:
支援直接讀寫網路上的檔案,支援的協議有 ftp、http、rsync、scp 等。比如,使用 FTP 協議以使用者名稱 adah 開啟伺服器 server 上 ~/temp 目錄下的 test.cpp 檔案,可以直接在命令列上使用:
vim ftp://adah@server/temp/test.cpp |
Vim會自動提示使用者輸入口令,然後開啟檔案。
更多的協助內容請參考“:help netrw”。
2.3. engspchk(英文拼字檢查)
作者:Charles E. Campbell, Jr.(綽號Dr. Chip)
網站指令碼編號:195
安裝說明:
在 Vim 網站上下載最新版本(engspchk.tar.gz);
使用“tar xvfz engspchk.tar.gz -C ~/.vim”解開;
在Vim中運行“:helptags ~/.vim/doc”安裝文檔。
提示替換拼字功能需要 agrep [4],可能需要另外下載安裝。
功能說明:
一個Vim專用的拼字檢查器,其最主要的特點是:
- 可以通過變數 spchkdialect 選擇英語變體(英國、美國、加拿大),對於找不到的詞、不常見的詞、不在當前英語變體中的詞以不同的方式加亮顯示;
- 支援使用者字典(儲存在 .vim/CVIMSYN 目錄中)和項目詞典(儲存在被檢查檔案所在的目錄中);
- 對於原始碼檔案,只對注釋進行拼字檢查,而不會對你的變數名稱胡亂提抗議;
- 通過詞典檔案可支援除英語以外的其它語言。
圖 5 中的視窗裡 engspchk 正在運行中。其中可以看到,紅色部分是外掛程式所不能識別的單詞,黃色部分是當前英文變體(預設是美國英語)中不正確的拼法,而青色部分是很少見的單詞。圖中啟動並執行是包含圖形介面支援的 Vim,因而還可以看到一個名為 DrChip 的功能表項目(參見圖6),在其中可通過菜單選擇拼字檢查相關的各項功能;同時還能看到快速鍵:“\ec”開始拼字檢查,“\ee”結束拼字檢查,“\ea”選擇替換拼字,等等。在文字模式的 Vim 中,我們一般就只使用這些快速鍵了。
圖 5
圖 6
更多的協助內容請參考“:help engspchk”。
2.4. calendar(日曆顯示)
作者:Yasuhiro Matsumoto
網站指令碼編號:52
安裝說明:
在 Vim 網站上下載檔案 calendar.vim,存到 ~/.vim/plugin 目錄中。
功能說明:
圖 6 的下半部分就是 calendar 的運行樣本,是直接在正常模式下鍵入“\caL”顯示出來的。游標在該視窗中時,可使用左箭頭或上箭頭顯示前一個月,右箭頭或下箭頭顯示後一個月,“t”回到“今天”,“q”關閉日曆視窗。在有滑鼠支援時,也可以使用滑鼠在黃色字樣的“Prev”、“Today”、“Next”上雙擊達到類似的效果。
除使用“\caL”外,“\cal”也可以開啟一個日曆視窗,但顯示位置是在 Vim 的左側而不是下方。另外,命令“:Calendar”效果和“\cal”相同,但其後可以跟參數:一個參數的話表示月份,兩個參數的話則分別表示年份和月份。“:CalendarH”與“:Calendar”類似,但日曆視窗的開啟位置和“\caL”(而不是“\cal”)一樣,是在下方而不是左側。
2.5. project(檔案的“項目”管理)
作者:Aric Blumer
網站指令碼編號:69
安裝說明:
1.在 Vim 網站上下載最新版本(project-1.3.tar.gz);
2.使用“tar xvfz project-1.3.tar.gz -C ~/.vim”解開;
3.在 Vim 中運行“:helptags ~/.vim/doc”安裝文檔。
功能說明:
該外掛程式可以把檔案組織成一棵樹的形式,以便於尋找和管理。使用命令“:Project”即可開啟一個使用者的“專案檔”(~/.vimprojects)。專案檔採用普通的文字檔的形式,非常易於瀏覽和修改。圖 7 是一個樣本。其中左邊視窗部分的就是一棵項目樹,完整內容如下:
圖 7
CvsMenu="~/.vim" CD=. { plugin/cvsmenu.vim doc/cvsmenu.txt}Nvwa="~/nvwa_local" CD=. { doc=doc { ChangeLog README webupdate.sh } nvwa=nvwa { bool_array.cpp debug_new.cpp mem_pool_base.cpp static_mem_pool.cpp bool_array.h class_level_lock.h cont_ptr_utils.h debug_new.h fast_mutex.h fixed_mem_pool.h mem_pool_base.h object_level_lock.h pctimer.h set_assign.h static_assert.h static_mem_pool.h }} |
在這個專案檔中存在兩個項目:CvsMenu 和 Nvwa。引號中的內容表示路徑,“CD=.”則表示開啟該項目中的檔案時,目前的目錄會更改到項目所在的目錄。項目下面可以再分子項目,如 Nvwa 項目下有 doc 和 nvwa 兩個子項目,沒有“CD=.”表示開啟子項目裡的檔案時不再更改目前的目錄。
圖中並沒有顯示出完整的內容,因為其中的內容可以摺疊(預設開啟專案檔時是完全摺疊起來的,即在上面的例子中,只能看到兩個項目的名字“CvsMenu”和“Nvwa”)。在非檔案名稱行上使用滑鼠雙擊或斷行符號鍵可以進行展開或摺疊,在檔案名稱行上使用滑鼠雙擊或斷行符號鍵則可以開啟對應的檔案。
更多的協助內容請參考“:help project”。
2.6. taglist(原始碼結構瀏覽)
作者:Yegappan Lakshmanan
網站指令碼編號:273
安裝說明:
1.確保機器上有一個可用的 Exuberant Ctags 的版本(可以執行命令“ctags”)
2.在 Vim 網站上下載 taglist(假設為 taglist.zip);
3.使用“unzip taglist.zip -d ~/.vim”解開;
4.在 Vim 中運行“:helptags ~/.vim/doc”安裝文檔。
雖然 taglist 使用 ctags,但並不要求 tags 檔案的存在。
功能說明:
使用命令“:Tlist”啟用/關閉 taglist,效果請先看一 8。Taglist 的主要特性有:
圖 8
- 可以顯示宏(macro)、函數(function)、變數(variable)、類型定義(typedef)、類(class)、結構(struct)等多種內容資訊;
- 開啟多個檔案時,可以同時看到多個檔案的結構資訊;
- 在左邊的 taglist 視窗顯示的名稱上雙擊滑鼠或按斷行符號鍵,右邊主視窗中會跳轉到相應的定義位置;
- 右邊視窗中游標的位置改變,左邊的視窗也會在 4 秒內(預設值,參見“:help 'updatetime'”)黃色加亮顯示相應的名稱;
- 在啟用/關閉 taglist 時,外掛程式能夠自動改變當前 Vim 視窗的大小(不管是文字模式的 Vim 還是圖形介面的 Vim),除非使用“:let Tlist_Inc_Winwidth=0”關閉這一功能(當使用這一功能導致相容性問題時)。
更多的協助內容請參考“:help taglist”。
2.7. cvsmenu(CVS整合)
作者:Thorsten Maerz/吳詠煒
網站指令碼編號:1245
安裝說明:
1.在 Vim 網站上下載檔案 cvsmenu.vim,存到 ~/.vim/plugin 目錄中;
2.啟動 gvim,在菜單中選擇“CVS-Settings-Install-Install updates”(文字模式的 Vim 可以使用快速鍵“,cgii”),從網上(SourceForge)的 CVS 中安裝最新版本和協助文檔(此步驟可選)。
功能說明:
在 Vim 中整合 CVS [24]版本管理功能。該外掛程式最初由 Thorsten Maerz 編寫,在 2002 年以來沒有再得到維護。我在 2005 年初開始使用這個外掛程式後,非常喜歡它,修正了其中存在的錯誤,並一直維護該外掛程式。如果大家發現有 bug,報告給我就可以了。
主要功能可在圖 9 的菜單中看到:
圖 9
- 瞭解 CVS 環境的基本資料和 cvsmenu 中的變數設定(參見圖 10);
圖 10
- 調整設定,安裝更新版本;
- 插入 CVS 的可擴充關鍵字,如“$Date$”、“$Id$”;
- 對目錄進行基本操作(cvs update 等);
- 接受附加參數的基本操作(檔案比較等);
- 管理功能,如登入;
- 刪除類操作;
- 打標籤;
- 觀察(跟蹤)和編輯功能;
- 將本地檔案和 CVS 中的檔案進行比較(以 Vim 的分左右兩列使用顏色加亮顯示修改、增加、刪除部分的比較方式;效果參見圖 11);
圖 11
- 顯示檔案每一行的更改人和更改時間(cvs annotate,參見圖 12);
圖 12
- 顯示庫的訪問曆史(cvs history);
- 顯示檔案修訂日誌(cvs log;參見圖 13);
圖 13
- 顯示檔案狀態;
- 顯示較短的檔案狀態;
- 根據本地資訊顯示檔案狀態(不訪問庫);
- 簽出模組(cvs checkout);
- 查詢更新;
- 更新,如有衝突會高亮顯示(cvs update);
- 取消修改;
- 添加當前檔案到 CVS 中(cvs add);
- 簽入當前檔案(cvs commit);
- 匯入檔案(cvs import);
- 添加並簽入當前檔案。
根據實際使用的需要,除了修訂錯誤之外,我加入了一些編碼相關的支援。拿一個最實際的情況,如果使用“set encoding=utf-8”,但原始碼中仍使用了 GBK 編碼的中文字元,那麼,必須在 .vimrc 中加入一行“let g:CVScvsoutputencoding='gbk'”才能保證“cvs annotate”操作的結果是正確的。
Thorsten 把該外掛程式的易用性設計得相當好。舉例來說,在作檔案比較時,按 Tab 可跳轉到下一個不同處,左側的比較視窗中按一下“q”即可關閉該視窗。更多的協助內容請參考“:help cvsmenu”。
2.8. doxygen(文檔注釋文法加亮)
作者:Michael Geddes
網站指令碼編號:5
安裝說明:
1.在 Vim 網站上下載最新版本(doxygen.zip);
2.使用“unzip doxygen.zip”解開;
3.執行“cp -p doxygen.vim ~/.vim/syntax”和“cp -p doxygen.txt ~/.vim/doc”複製檔案到 Vim 目錄下;
4.在 Vim 中運行“:helptags ~/.vim/doc”安裝文檔。
5.如果 ~/.vim/after/syntax 目錄不存在,使用“mkdir -p ~/.vim/after/syntax”建立該目錄;
6.進入 ~/.vim/after/syntax 目錄,使用下面三行建立文法檔案之間的關聯,使得在 C、C++ 和Java 檔案中可以識別文檔注釋:
ln -s http://www.cnblogs.com/syntax/doxygen.vim c.vimln -s http://www.cnblogs.com/syntax/doxygen.vim cpp.vimln -s http://www.cnblogs.com/syntax/doxygen.vim java.vim" |
6.可選地,看一下我的個人編程網頁 [6] 下有沒有對 doxygen.vim 的更新(裡麵包含有作者尚未併入到標準發布中去的我的更改——好奇的話,你可以在 doxygen.vim 檔案中數一下,看一看 Wu Yongwei 的名字出現了幾次:-))。
功能說明:
如果你用過文檔注釋,相信我不需要多說,看一 14你就知道這個指令碼的功能了。如果你沒有用過文檔注釋,強烈建議你到 Doxygen [7] 的網站上看一下,瞭解一下這個非常有用的工具。作為樣本,可在http://nvwa.sourceforge.net/doc/debug__new_8cpp.html#a17 看一中的代碼使用 Doxygen 自動產生的 HTML 網頁。
圖 14
2.9. matrix(!)
作者:Don Yang
網站指令碼編號:1189
安裝說明:
在 Vim 網站上下載檔案 matrix.vim,存到 ~/.vim/plugin 目錄中即可。
功能說明:
是的,說的就是電影 Matrix!Vim 的指令碼並不是都幹“正經事”的。想看一下電影裡那些酷酷的字元在 Vim 的視窗裡翻滾嗎?發一個命令“:Matrix”即可(按任意鍵退出)。效果見圖 15。
圖 15