以前一直很困惑,无法启动VIM的omni功能。omni功能的使用就可以和Source Insight一样自动补全代码。当然VIM这样的编辑器不可能只提供那么一些功能,除了代码补全,还提供文件名补全、根据字典进行补全、根据本缓冲区或其它缓冲区类似的内容进行补全、根据文件语法补全等等,它甚至允许用户自己编写函数来实现定制的补全。
VIM的omni补全可以支持多种程序语言,包括C,C++,XML/HTML,CSS,JAVASCRIPT,PHP,RUBY等。VIM在对不同类型的文件进行补全时,会根据文件类型,为其设置不同的补全函数。也就是说,要实现全能补全功能,需要打开文件类型检测。需要把下面代码放入.vimrc之中,以前为什么一直启用不了就是没有加这句代码。
filetype plugin indent on
在写代码的时候使用 ” CTRL-X CTRL-O “ 来调出补全提示菜单。
如果要支持C++的全能补全,需要到http://www.vim.org下载OmniCppComplete插件,链接如下:http://www.vim.org/scripts/script.php?script_id=1520
接下来,使用下面的命令,为C++文件生成标签文件,假定你的文件在src目录树下:
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q directory
--c++-kinds=+p : 为C++文件增加函数原型的标签
--fields=+iaS : 在标签文件中加入继承信息(i)、类成员的访问控制信息(a)、以及函数的指纹(S)
--extra=+q : 为标签增加类修饰符。注意,如果没有此选项,将不能对类成员补全
在写代码的时候输入“->"后会自动弹出补全菜单供选择,比C还要方便
下面这个网址是个关于VIM的blog,内容不错,里面可以学到不少东西^_^!
http://blog.csdn.net/easwy/category/234641.aspx?PageNumber=1