Vim 實用技術,第 2 部分: 常用外掛程式

來源:互聯網
上載者:User

轉自: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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.