1. taglist: 原始碼結構瀏覽
作者: Yegappan Lakshmanan, 網站指令碼編號: 273. :
http://www.vim.org/scripts/script.php?script_id=273
1.1 功能說明:
這是一個非常非常重要的外掛程式, 有了它, 我們才能夠在 VIM 中查看一個檔案中包含的函
數列表, 全域參數列表等. 在taglist視窗顯示的名稱上雙擊滑鼠或按斷行符號鍵
, 右邊主視窗中會跳轉到相應的定義位置. taglist是最受程式員歡迎的外掛程式, 為編程人
員提供了極大方便. 推薦大家一定要安裝 !
he "Tag List" plugin is a source code browser plugin for Vim and
provides an overview of the structure of source code files and allows
you to efficiently browse through source code files for different
programming languages
使用"CTRL-W + (h,j,k,l)"可以在主視窗和taglist視窗之間切換. 在taglist視窗中, 可
以使用下面的快速鍵:
<CR> 跳到游標下tag所定義的位置, 用滑鼠雙擊此tag功能也一樣
o 在一個新開啟的視窗中顯示光線標下tag
<Space> 顯示光線標下tag的原型定義
u 更新taglist視窗中的tag
s 更改排序方式, 在按名字排序和按出現順序排序間切換
x taglist視窗放大和縮小, 方便查看較長的tag
+ 開啟一個摺疊, 同zo
- 將tag摺疊起來, 同zc
* 開啟所有的摺疊, 同zR
= 將所有tag摺疊起來, 同zM
[[ 跳到前一個檔案
]] 跳到後一個檔案
q 關閉taglist視窗
<F1> 顯示協助
1.2 安裝
1)必須首先安裝Exuberant Ctags, 注意必須安裝在$PATH路徑下, 否則必須在
.vimrc裡標明ctags的絕對路徑.
2)下載外掛程式, 解壓縮後將taglist.vim拷貝到./vim/plugin/目錄下, 將
taglist.txt拷貝到./vim/doc/目錄下開啟並執行:helptag.
3)雖然taglist使用ctags, 但並不要求tags檔案的存在.
4)taglist功能很多, 選項也很多, 可以通過修改.vimrc訂製可選項. 常用的配
置見圖1, 更多的協助內容請參考":help taglist".
引用自我的.vimrc
|
|" 如果Exuberant Ctags的安裝路徑不在$PATH裡, 必須從這裡指定.
|"let Tlist_Ctags_Cmd = '/usr/local/bin/ctags.exe'
|"當vim啟動時自動開啟taglist視窗, 預設為0.
|" let Tlist_Auto_Open = 1
|" 精簡模式, 不同的tag類別之間沒有空行, 預設為有空行
|let Tlist_Compact_Format = 1
|" 主視窗退出時自動關掉taglist視窗, 預設為不自動關閉.
|let Tlist_Exit_OnlyWindow = 1
|" 是否允許開啟taglist視窗時自動加寬視窗, 預設為允許.
|let Tlist_Inc_Winwidth = 1
|" tag是以何種順序排序, 以"order"還是"name", 預設是order, 可以用s切換,
|let Tlist_Sort_Type = "order"
|" 自動關閉其它檔案的taglist視窗, 預設是0.
|let Tlist_File_Fold_Auto_Close = 1
|" taglist視窗的寬度, 預設為30.
|let Tlist_WinWidth = 35
|" 只顯示本檔案的tag, 預設為顯示所有開啟檔案的tag.
|let Tlist_Show_One_File = 1
|
|" F8 (normal mode) brings up the tag list
|nmap <F8> <ESC>:Tlist<RETURN>
已知bug:
1)Windows中不能使用taglist來瀏覽包含在中文路徑中的源檔案. 本人不才, 解決了
這個問題, 需要的請打上這個
patch(http://code.google.com/p/txtbrowser/downloads/detail?name=taglist.diff&can=2&q=),
或者直接使用本人修改過的
taglist.vim(http://code.google.com/p/txtbrowser/downloads/detail?name=taglist.vim&can=2&q=)
替換原來的檔案即可.
2. TxtBrowser: 純文字瀏覽外掛程式
作者: ypguo, 外掛程式類型: utility. :
http://www.vim.org/scripts/script.php?script_id=2899
2.1 功能說明:
1) 列出文字檔的文檔分類樹, 點擊即可跳轉到檔案本文:
2) 文法高亮: 讓文字檔也有文法, 高亮顯示檔案的標題, 關鍵字, 檔案裡的超級連結等
文法元素.
3) 擴充功能:
* 把游標放到URL上, <leader>g即可開啟所在處的URL, 包括網址, 各種檔案(包括pdf,
mp3等), Email地址.
* 把游標放到單詞上, 執行或<leader>f開啟網路字典查單詞.
* 把游標放到單詞上, 執行或<leader>s開google搜尋該單詞.
2.2 安裝
1) 請首先安裝taglist外掛程式
(http://www.vim.org/scripts/script.php?script_id=273),
我相信玩Vim的沒有幾個人沒有安裝這個外掛程式吧.
2) 下載外掛程式後解壓縮到目錄$HOME/.vim(或$HOME/vimfiles, $VIM/vimfiles). 然後將解壓後
的.ctag, 剪下到$HOME目錄下即可, 安裝完成後你的檔案夾下應該有下面的幾個檔案(請
注意目錄結構):
* $HOME/.vim/syntax/txt.vim - .txt檔案的文法高亮檔案.
* $HOME/.vim/plugin/txtbrowser.vim - 瀏覽工具.
* $HOME/.vim/doc/txtbrowser.txt - 英文協助文檔.
* $HOME/.vim/doc/txtbrowser.cnx - 中文協助文檔. (別忘了開啟然後執行
":helptags ."產生標籤)
* $HOME/.ctags - 用於標題標籤的產生.
由於版本1.1.1之前採用老的外掛程式名, 請在安裝前先刪除低版本外掛程式(主要是協助檔案, 原來的
名字叫txt.txt和txt_cn.txt), 否則在安裝新的協助文檔時會提示標籤已經存在..
3) 在你的.vimrc檔案裡加入下面三行, 然後重啟你的Vim:
syntax on
let tlist_txt_settings = 'txt;c:content;f:figures;t:tables'
au BufRead,BufNewFile *.txt setlocal ft=txt
3. cscope_maps.vim: cscope的快速鍵
作者: cscope網站, 外掛程式類型: utility. :
http://cscope.sourceforge.net/cscope_maps.vim
3.1 功能說明:
cscope可以看成是超頻的ctags, 不過只支援C/C++等少數語言. Cscope與ctags常的相似.
不過有一點不同的是, Cscope比ctags有更多的搜尋類型和選項, 比如可以搜尋調用本函數
的函數等, 而ctags則可以顯示taglist, 所以兩個工具一直都是程式員必備的軟體 . 安裝
完cscope後, 你需要再安裝一個cscope_maps.vim, 把cscope複雜龐大的命令映射成易記的
組合. 具體應用請參考<#2.2 vim對程式的支援>.
cscope的主要功能是通過同的子命令"find"來實現的, "cscopefind"的用法:
csfindc|d|e|f|g|i|s|tname
為了簡便, cscope_maps.vim外掛程式將這些命令映射為:
<C-\>s -> cs find s XXX: 尋找C語言符號, 即尋找函數名, 宏, 枚舉值等出現
的地方
<C-\>g -> cs find g XXX: 尋找函數, 宏, 枚舉等定義的位置, 類似ctags所提
供的功能
<C-\>d -> cs find d XXX: 尋找本函數調用的函數
<C-\>c -> cs find c XXX: 尋找調用本函數的函數
<C-\>t -> cs find t XXX: 尋找指定的字串
<C-\>e -> cs find e XXX: 尋找egrep模式, 相當於egrep功能, 但尋找速度快
多了
<C-\>f -> cs find f XXX: 尋找並開啟檔案, 類似vim的find功能
<C-\>i -> cs find i XXX: 尋找包含本檔案的檔案
3.2 安裝說明:
1)下載後將word_complete.vim檔案儲存在$VIMDATA/plugin目錄下或將
cscope_maps.vim裡的內容拷貝到.vimrc裡.
4. BufExplorer: 管理已經開啟的buffer
作者: jeff lanzarotta, 網站指令碼編號: 42, 外掛程式類型: utility. :
http://www.vim.org/scripts/script.php?script_id=42
4.1 功能說明
這個外掛程式可以使編輯多檔案更加方便, 裝完外掛程式後Normal mode下輸入\be即可開啟緩衝區
列表, 游標放置在某一個檔案上按斷行符號即可開啟這個檔案, 而緩衝區列表自動關閉. 下面
是更詳細的命令:
'\be' (normal open) or
'\bs' (force horizontal split open) or
'\bv' (force vertical split open)
With bufexplorer, you can quickly and easily switch between buffers by
using the one of the default public interfaces:
4.2 安裝
1)下載, 解壓縮後將相應的檔案放到runtimepath(linux下通常是~/.vim,
Windows系統下通常是c:\vimfiles)路徑下的plugin和doc目錄. 然後重啟一下
vim就行了.
2)在Normal模式下執行如下命令(通常記住第一個就夠了):
5 sketch.vim: vim畫圖工具
作者: Antony Scriven, 外掛程式類型: utility. :
http://www.vim.org/scripts/script.php?script_id=705
5.1 功能說明
在純文字文檔裡畫流程圖是很煩的事情, 你需要花很大的精力在空格的對齊上面.
sketch.vim工具解決了這個難題, 可以讓你用滑鼠直接畫圖, 很好玩, 雖然用到的時候不
多, 但真一旦用到了, 你就會震撼於它的創意了.
Sketch.vim – Line drawing/painting using the mouse. Based on an idea
by Morris.
滑鼠左鍵用於畫徒手畫, Ctrl-滑鼠左鍵可以畫粗曲線. 滑鼠右鍵圈一個地區, 然後點擊
左鍵可以畫空心圖, Shift-滑鼠左鍵畫的的時候拐彎處用"."而不是"+", Ctrl-滑鼠左鍵可
以畫實習圖. Alt-滑鼠左鍵可以切換實心畫和粗筆畫的線條, 可以有的選擇為".", ":"和
"#".
是我隨便練習的一個例子:
=====================================================================
### ### ########### ##### #####
### ### ########### ####### ######
#### ### ### ####### ######
##### #### ### ### #### ########
##### #### ### ### #### ##### ###
##### ##### ### ### ######## ###
##### #### ### ### ####### ###
###### ##### ### ### ###### ###
#### ##### ### #### ##### ###
######## ### #### #### ###
###### ############### ### ### ###
##### ############### ### ###
#### ###
=====================================================================
figure 6: 用sketch畫的圖
這個外掛程式和DrawIt有點類似, 用了這個就不用那個了.
安裝說明:
1)下載解壓縮後將sketch.vim檔案儲存在$VIMDATA/plugin目錄下, sketch.tut
為教程, 第一次使用前請閱讀一下. 你會發現這個畫圖工具其實很強大.
2)執行:call ToggleSketch()命令開啟或關閉畫圖功能. 建議在.vimrc中把
call ToggleSketch() 映射為命令, 方便一些":map <F1> :call
ToggleSketch()<CR>"
6. NERD_tree: 分類樹瀏覽器
作者: Marty Grenfell, 外掛程式類型: utility. :
http://www.vim.org/scripts/script.php?script_id=1658
6.1 功能說明:
NERD tree允許你在Vim編輯器中以樹狀方式瀏覽系統中的檔案和目錄, 支援快速鍵與滑鼠
操作, 使用起來十分方便. NERD tree能夠以不同顏色高亮顯示節點類型, 並包含書籤,
過濾等實用功能. 配合taglist或txtviewer外掛程式, 右邊視窗顯示本檔案夾的檔案, 左邊窗
口顯示本文的文檔結構, 將會使管理一個工程變得相當容易.
The NERD tree allows you to explore your filesystem and to open files
and directories. It presents the filesystem to you in the form of a
tree which you manipulate with the keyboard and/or mouse. It also
allows you to perform simple filesystem operations.
6.2 安裝說明:
1)下載NERD_tree.zip, 解壓後將NERD_tree.vim放入~/.vim/plugin/目錄; 將
NERD_tree.doc放入~/.vim/doc目錄下並執行":helptags ."安裝協助檔案.
2)在開啟的檔案裡運行命令":NERDTreeToggle"開啟或關閉NERDTree. 或者在
.vimrc檔案裡將這個命令映射成一個快速鍵"nmap <F7>
<ESC>:NERDTreeToggle<CR>"
=~/.vimrc==================================================
"NERDTree plugin
"NERDTree的視窗在左邊還是右邊
let NERDTreeWinPos = "right"
"NERD tree視窗的大小
"let NERDTreeWinSize = 31
" 映射F7鍵為開啟和關閉NERDTree的快速鍵
nmap <F7> <ESC>:NERDTreeToggle<RETURN>
===========================================================
figure 7: NERDTree常用選項
3)在開啟的NERDTree視窗裡, 用"o"命令開啟一個檔案, 用通常的vim操作移動光
標.
4)用":help NERD_tree"命令查看詳細的使用說明.
7. 關於color外掛程式
個人覺得編程(C語言)還是desert或evening好看. 而編輯文字檔, 個人喜歡用default.
歡迎推薦其它的colorscheme外掛程式.
8. 其它
其它好的外掛程式還有很多, 但是我都沒有試過, 所以只列出名字, 有時間的時候可以嘗試一
下, 也希望大家推薦你喜歡的外掛程式:
gzip: 壓縮檔支援
netrw: 網路檔案支援
engspchk: 英文拼字檢查
calendar: 日曆顯示
cvsmenu: CVS整合
doxygen: 文檔注釋文法加亮
matrix 電影matrix風格的屏保
VisualMark: 高亮的書籤
SuperTab: 加速你的補全