1 插件列表
1.1 CTags
CTags用来给源代码生成索引文件,以便于文本编辑器快速定位符号位置(变量、函数、类等)。
下载地址:http://ctags.sourceforge.net
使用方式:在代码的根目录执行如下命令即可生成tag文件:
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
这个命令有点长,可以在.vimrc
的文件中加个键盘映射,像下面的样子,这样只需要按下CTRL+F12
即可生成tag文件了。
map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
另外,如果需要指明源代码的语言,则需要加上--languages=c
(使用C语言)的参数。
1.2 TagList
TagList是一款基于CTags的VIM插件,用来显示代码的结构概况。
下载地址:http://www.vim.org/scripts/script.php?script_id=273
配置方式:在~/.vimrc
文件中,增加如下配置:
let Tlist_Auto_Open = 1
let Tlist_Show_One_File = 1
let Tlist_Exit_OnlyWindow = 1
其中第一行配置为当发现开启的文件为源代码时,则自动打开TagList,建议打开这个选项,不然每次都都手动执行TlistToggle
来开关TagList窗口。
1.3 CScope
CScope是一个C语言的浏览工具,可以快速找到函数、变量的定义位置及调用信息。
下载地址:http://cscope.sourceforge.net
使用方式:在代码的根目录执行下面的命令,即可生成CScope的索引文件:
cscope -Rbkq
其中,-R
表示递归建立索引,-b
表示不启动CScope的用户界面,-k
表示生成索引文件时不搜索/usr/include
目录,-q
表示生成cscope.in.out
和cscope.po.out
文件,以加快索引速度。
1.4 OmniCppComplete
OmniCppComplete是VIM中对结构体的成员变量、类的属性或方法提供实时提示及补全功能的插件,依赖CTags工具生成的索引文件。
下载地址:http://www.vim.org/scripts/script.php?script_id=1520
配置方式:无需配置,插件安装后即自动生效,在写代码时,输入一个结构体变量的名称后,当继续输入.
或->
字符后,会自动弹出该结构体中的所有变量列表,可以上下选择,然后按回车自动补全。
1.5 SuperTab
SuperTab可以简化补全代码的方式,直接按TAB
键即可(之前需要按CTRL+X
和CTRL+O
)。
下载地址:http://www.vim.org/scripts/script.php?script_id=1643
配置方式:SuperTab插件是Vimball的安装格式,不需要手动拷贝插件,直接用VIM打开,然后执行:so %
即可完成安装。安装后需要在~/.vimrc
文件中增加如下配置:
let g:SuperTabRetainCompletionType=2
let g:SuperTabDefaultCompletionType="<C-X><C-O>"
1.6 MiniBufExplorer
当需要同时编辑多个文件的时候,MiniBufExplorer可以在VIM顶部以标签形式显示当前打开的文件列表,并可以在各文件间快速切换。
下载地址:http://www.vim.org/scripts/script.php?script_id=159
ctrl + tab
control + the vim direction keys [hjkl] can be made to move you between windows.
control + arrow keys can be made to do the same thing
control + tab & shift + control + tab can be setup to switch through your open windows (like in MS Windows)
control + tab & shift + control + tab can alternatively be setup to cycle forwards and backwards through your modifiable buffers in the current window
配置方式:在~/.vimrc
文件中增加如下配置:
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplMapWindowNavArrows = 1
let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplModSelTarget = 1
1.7 Command-T
Command-T用于在VIM快速定位文件,通过:CommandT
呼出Command-T窗口,然后直接输入文件名,在输入的过程中文件列表会逐渐缩小范围,并可以通过CTRL+k
和CTRL+j
上下选择文件,选定后按回车即可打开文件。
下载地址:http://www.vim.org/scripts/script.php?script_id=3025
安装方式:Command-T插件为Vimball安装格式,首先用VIM打开安装文件,执行:so %
安装插件,然后执行下面的命令:
cd ~/.vim/ruby/command-t
ruby extconf.rb
make
注:安装需要Ruby开发环境。
1.8 CtrlP
CtrlP是另一个快速定位文件的插件,通过:CtrlP
呼出查找窗口,用法和Command-T一样,而且支持正则,另外不需要Ruby运行环境,安装起来更方便。
下载地址:http://www.vim.org/scripts/script.php?script_id=3736
可以配置正则表达式使能
配置方式:在~/.vimrc
中增加如下配置选项:
let g:ctrlp_working_path_mode = 'ra'
"" MacOSX/Linux
set wildignore+=*/tmp/*,*.so,*.swp,*.zip
"" Windows
set wildignore+=*\\tmp\\*,*.swp,*.zip,*.exe
let g:ctrlp_custom_ignore = {
\ 'dir': '\v[\/]\.(git|hg|svn)$',
\ 'file': '\v\.(exe|so|dll)$',
\ 'link': 'some_bad_symbolic_links',
\ }
1.9 A.VIM
A.VIM是用于.c
和.h
文件间的快速切换的插件。
下载地址:http://www.vim.org/scripts/script.php?script_id=31
配置方式:无需配置,插件安装后执行:A
即可完成.c
和.h
文件间的切换。
2 运行效果
注:图中的效果除了上面的插件配置,还包括了其它对VIM的基本配置,见《我的VI配置文件》。