1. neocomplcache
当初看到这个插件确实兴奋了一阵子,与neosnippet完善结合,不过有个致命的缺点,不能解析包含的头文件的内容(希望是我理解错的). 使用我在a.c文件中包含a.h,而a.h文件里有个TEST_PIN的定义, 在a.c里却不能提示这个定义,让我郁闷一好久,
还是换回AutoComplPop吧.
找到解决办法: neocomplcache可以解析tags文件,使用Project和Indexer插件.二个插件结合,可以自动管理项目文件及生成项目文件的tags并自动更新.虽然说实现更新tags在大的项目下会卡,但我目前也没做过那么大的项目.先这样用吧.
2. AutoComplPop
之前一直使用这个.觉得还可以吧.可以解析一层的头文件包含,即a.c里包含a.h,是可以找得到的.如果a.h再包含b.h就找不到了.实际工程里往往头文件和C文件放在不同的目录,没关系,我是在.vimrc加入如下的配置, 在每个工程目录建立vimworkspace.vim,再加入相应的path.
" 加载每个项目的单独设定 if filereadable("vimworkspace.vim") source vimworkspace.vim endif
vimworkspace.vim举例
set path+=./**,D/linux/include/** set path+=../lib/*