目前机器上vim的配置为:
Vim + ctags + taglist + omnicppcomplete +
MiniBufExplorer + BufExplorer + NERD_tree + DoxgenToolkit
1. taglist插件:用于显示文件的tag,需要ctags的支持
下载:
在taglist.vim中设置 let Tlsit_Ctags_Cmd='/usr/bin/ctags'
:TlistToggle打开taglist,我做了映射,直接tl就OK。
nmap tl :TlistToggle<CR>
2. omnicppcomplete插件:用于自动补全
在.vimrc中添加:
set nocp filetype plugin on
使用ctags时需添加标志,才能支持类成员的补全。
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
3. 窗口管理插件MiniBufExplorer, bufexplorer
tab/shift+tab在minbuf窗口用于切换tab
使用其中一个就够了,minibufexplorer会打开一个小窗口管理显示所有的buffer信息,在该窗口中使用tab可以进行缓冲区的切换。Bufexplorer通过\be(或\bs,\bv)缓冲区列表。
4. 文件浏览插件
1.NerdTree explorer
使用:NERDTree打开文件浏览器,:NERDTreeClose关闭,设置了键映射,直接nt打开,nc关闭。
nmap nt :NERDTree<CR>
nmap nc :NERDTreeClose<CR>
5. 文档插件 DoxgenToolkit
非常方便的生成文档注释,:Dox生成方法注释,:DoxLic生成版权注释,:DoxAut生成作者注释。
命令比较难敲,也做了映射,直接dx、dl、da就OK
nmap dx :Dox<CR>
nmap da :DoxAut<CR>
nmap dl :DoxLic<CR>
l 小技巧
- 使用ctrl + r 可以搜索历史命令并执行
- 使用history显示历史,!!执行上一条命令,!num执行第num条命令
- 使用vi时,q!调出编辑历史
- 到行首0,行尾$,第一个非空格^
- 不退出vi能直接执行命令,如make
- V模式:正常(v),行模式(大写V),block模式(Ctrl + v)
- V模式下,<>缩进所有
- u撤销,ctrl+r反撤销
- ctrl+a跳到命令行首,ctrl+e跳到命令行尾
- :s/src/dest/(g) 替换当前行第一个或所有
- :%s/src/dest/g 替换全局第一个或所有、
- bn,bp,bf,bl用于切换缓冲区,bd删除缓冲区
- *(#)用于查找光标位置处的缓冲区
- ctrl+], ctrl+T用于跳转定义与声明
- ctrl+p,ctrl+n用于单词补全
- ctrl+o,ctrl+i用于鼠标前后位置跳转
- !command在vi中执行外部命令
- 调整窗口,ctrl+w |宽度最大化,加减宽度<>
- 调整宽口,ctrl+w _高度最大化,加减高度+-
- 调整窗开,Ctrl+w =,使窗口等宽