Ubuntu安装vim插件的步骤(2)
4.NERDTree
Source insight右边是文件列表窗口,显示了工程的所有文件名。文件管理插件NERDTree具有类似的功能,该插件可以显示当前目录下所有文件和目录,并方便地浏览和操作文件。
Vim addon manager没有NERDTree插件,需要自己下载NERDTree,下载后将plugin/NERD_tree.vim 和doc/NERD_tree.txt分别复制到.vim的相应目录下
为了让winmanager顺利打开NERDTree窗口,在.vimrc中增加下面代码,
let g:NERDTree_title=‘[NERD Tree]’function! NERDTree_Start() exec ‘NERDTree’endfunctionfunction! NERDTree_IsValid() return 1endfunction
5.winmanager
为了像source insight一样同时显示多个窗口,需要winmanager插件。
vim-addons install winmanager
同时在winmanager中显示NERDTree和taglist窗口,默认在左边,
let g:winManagerWindowLayout=‘NERDTree|TagList’
设置快捷键wm打开winmanager,
nmap wm :WMToggle《cr》 wm命令打开
设置窗口转换快捷键,不过在用了MiniBufExplorer后有更方便的选择,
map 《c-w》《c-b》 :BottomExplorerWindow《cr》 跳到下面窗口
map 《c-w》《c-f》 :FirstExplorerWindow《cr》 跳到上面窗口
最好打开vim时会自动打开winmanager窗口,
let g:AutoOpenWinManager = 1
同时修改winmanager.vim
“set auto open Winmanagerif g:AutoOpenWinManager autocmd VimEnter * nested call s:StartWindowsManager()|3wincmd w|q endif
其中3表示打开后光标在第3个窗口,即源文件窗口。1,2分别表示NERDTree和taglist窗口。
因为winmanager总会打开一个没有用的空窗口,不知道为什么,需要最后加q关闭它。如果是用WMToggle打开winmanager的话,要关闭这个空窗口就需要在winmanager.vim的ToggleWindowsManager函数中增加q。
function! 《SID》ToggleWindowsManager() if IsWinManagerVisible() call s:CloseWindowsManager() else call s:StartWindowsManager() ”close empty window
exe ‘q’ end
endfunction
更多请查看
:help winmanager
6.MiniBufExplorer
写程序的时候肯定会多个源文件同时编辑,像source insight就有个window list,保存了最近打开过的所有源文件。Vim通过buffer来达到类似的作用,buffer的命令操作包括
:ls 显示当前打开的所有文件
:bn 跳到下一个文件
:bp 跳到上一个文件
:bd 删除一个buffer
MiniBufExplorer插件提供了更直观的方式,将buffer显示在最上端的窗口内,窗口操作包括
《Tab》 向前循环切换到每个buffer名上
《S-Tab》 向后循环切换到每个buffer名上
《Enter》 在打开光标所在的buffer
d 删除光标所在的buffer
为了只在在源码窗口打开选中的buffer,需要设置miniBufExplModSelTarget,默认是关闭的,
let g:miniBufExplModSelTarget = 1
不过MiniBufExplorer还有个更重要的功能是可以实现用CTRL键加h|j|k|l方便地切换窗口,
let g:miniBufExplMapWindowNavVim = 1 用《CTRL-h|j|k|l》切换到上下左右窗口
7.OmniCppComplete
大部分IDE都支持自动补全功能,vim作为linux下优秀的编辑器当然不缺少,不过vim自带的补全功能,ctrl+n,ctrl+p可以再当前源文件中实现简单的补全功能,但这是远远不够的。OmniCppComplete利用了Ctags生成的tag数据库,实现了文件间名字补全,包括
命名空间(namespace),类(class),结构(struct)和联合(union)补全
函数属性成员和返回值类型补全
“this”指针成员补全
C/C++类型转换(cast)对象补全
类型定义(typedef)和匿名类型(anonymous types)补全
安装好后输入时键入ctrl+x ctrl+o就会补全当前名字,使用过IDE的同学都知道补全只要一个tab键就行了,按这么多键太麻烦了。这就需要supertab插件的帮助了,
Vim-addons install supertab
安装好后,设置以下选项,
let g:SuperTabRetainCompletionType=2
letg:SuperTabDefaultCompletionType=“《C-X》《C-O》”
SuperTabDefaultCompletionType设置tab键对应的命令,
SuperTabRetainCompletionType表示
0- 不记录上次的补全方式
1- 记住上次的补全方式,直到用其他的补全命令改变它
2- 记住上次的补全方式,直到按ESC退出插入模式为止
8.surround
在在编程时会遇到大量的匹对符号,如“,(,{等等,高效地处理这些符号可以大大地提高编程效率,Surround正是处理这些符号的非常优秀等等插件。
Surround的使用非常简单明了(*代表当前光标位置):
插入符号
Hellow*orld! ysiw) Hello (world)!
或者
Hellow*orld! veS) Hello (world)!
替换
“Hello*world!” cs“‘ ’Hello world!‘
删除
”Hello*world!“ ds” Hello world!
至此,在安装了以上插件后,vim已经具备了强大的编辑功能。当然,这里只是列出一些基本插件,还有很多其他有趣又好用的插件,比如注释用的NERD_commenter.vim,高亮书签的VisualMark,头文件切换的a.vim等等,以后有机会再研究。
上面就是Ubuntu上安装vim插件的方法介绍了,安装插件后的vim将拥有更多的功能,以满足程序编辑的需要,如果你还没有安装这些vim插件,不妨为自己的系统安装下吧。