操作 Vim 時,通常都在 Terminal 底下作用,無法像一般的 GUI
應用程式可以以樹狀目錄來瀏覽檔案。 The NERD Tree
是一將檔案目錄以文字模式方式繪製出來的 Plugin。讓使用者可以不必跳出 Vim
編輯器 而可進行檔案目錄的瀏覽、開啟等動作。新版的 NERD Tree
還另外支援了書籤 (Bookmark) 功能,使用者可將路徑節點存成書籤,以便下次載入時
直接回到該路徑上。
◎ Taglist
Taglist plugin 可使用 ctags 來產生程式碼的變數、函數、類別、標頭檔等等資訊的索引。
並且可以左邊開啟分割視窗,將這些資訊分類別顯示出來,也可在 Taglist Buffer 內直接
跳躍至該項目定義的位置。
◎ SnipMate
為模仿 TextMate 一自動補完程式碼的功能而實做的 plugin。在 SnipMate 之前為
SnippetsEmu ,但有 Place Holder 以及和 Autocomplpop 互相衝突的問題,SnipMate 則
改進了這項問題,並且同名稱的 Place Holder 可以同步內容,也可反向跳躍至上一個 Place
Holder。
FuzzyFinder plugin 提供了一個快速搜尋檔案、Buffer、書籤、指令、標籤的一個介面。
搜尋時,可以即時預覽搜尋結果,並且支援 wildcard 的模糊搜尋
AutoComplPop Plugin 為一可自動偵測目前程式碼的語境,自動呼叫相關對應的補齊函式 (Completion Function)
而省去手動觸發補齊功能的 Plugin。
安裝之後,AutoComplPop 就會自動啟用,輸入片段程式碼即可見效。
需要注意的是,Vim 的版本需要在 7.2 才有支援。
安裝方式同以上 Plugin 。
大多數補齊函式,需要另外掃描外部檔案以獲得補齊資訊,耗費的時間依情況而定,但大多數補齊資訊都
大同小異,因此 NeoComplCache Plugin 針對特定的樣式 (Pattern) 所回傳的補齊資訊做了快取,
以增加補齊速度。
安裝方式同以上 Plugin 。
◎ Fakeclip
為了解決於 Terminal 以及 GUI 之間複製貼上的問題,FakeClip
利用了虛擬的暫存器來解決多種平台上 Termianl 複製文字至剪貼簿的問題。
同時支援:
Cygwin
Mac OS X
X Window System (使用 xclip)
Vim 缺乏一個良好的 Buffer 管理介面,只能利用簡單的 :buffers , :[n]buf ,
[n]bufwipe , [n]bufdo 指令來做操作。
BufExplorer 提供了一個介面將所有 Buffer 的資訊整理出來,你也可透過該介面
喚回、刪除該 Buffer。
安裝方式同以上 Plugin。
Surround plugin 可針對包含在文字外的括號、引號、XML 標籤等等做快速的修改。
舉例來說:
於下字串內,按下 cs"' 時
"Hello world!"
可改為:
'Hello world!'
此時若按下 cs'
則可改為
Hello world!
Surround plugin 也支援 Visual Mode ,選擇後,可使用大寫 S 對該區塊修改包圍的文字
安裝方式同以上 Plugin。
GSession.vim 是一處理 Vim Session Plugin 。一般建立 Session 可使用
:mksession [filename] 指令,來將目前所有的分頁、開啟的檔案狀態儲存起來,在下次
載入 Vim 時可以將狀態喚回。 但缺點就在 Session File 會被存在工作目錄內,
GSession 可自動將 Session File 集中放置在 ~/.vim/session 內,並且可以是匿名 Session
,也就是,你不需要花時間想 Session 的名稱。
存 Session 之後,在同一個路徑開啟 Vim 時便會自己載入 Session,省去輸入指令再去載入的時間。
若要儲存為命名的 Session ,載入時,也同時支援自動補齊,不需自己記住當時所存的 Session 名稱。
安裝方式同以上 Plugin。
附錄:
以上 plugin 皆可使用 Vimana 來安裝。
Vimana 為一可以偵測 vim.org 上 plugin 檔案,來自動安裝 plugin 檔案之模組。
安裝 Vimana :
使用 cpan 來安裝 Vimana,若是初次使用 cpan,只需要採用預設的 cpan 設定即可。
$ sudo cpan Vimana
搜尋 plugin :
$ vimana s [keyword]
安裝 plugin :
$ vimana i [plugin name]
◎作者簡介
Cornelius,目前在 AIINK(愛印網),以 Perl 語言開發的 Jifty web framework
從事網站開發相關工作。於 CPAN - Perl 模組典藏網維護多個 Perl 模組,參與 Jifty, SD 等 Perl 相關開放原始碼專案
。主要以 Vim 做為開發工具,著有 cpan.vim , perl-completion.vim , perldoc.vim 等多個 vim
相關 Plugin。
Github
Twitter
Plurk Blog
Google group