这几年我用vim编程,我使用了ctags.我正在使用一个相当大的C/C++包,我需要找到函数的定义.我通常使用grep + ctags.最近我尝试使用cscope而不是ctags并将其与Vundle一起安装.我看到一些文件出现以下错误
E568: duplicate cscope database not added
我搜索了网络,发现了这个:https: //blogs.oracle.com/natarajan/entry/avoiding_duplicate_cscope_database_error 它不起作用.
我怎样才能解决这个问题?
扩展Artem的答案:
Vim的帮助cscopeverbose
如下:
如果
'cscopeverbose'
未设置(默认值),则添加cscope数据库时将不会打印指示成功或失败的消息。理想情况下,您应该.vimrc
在添加任何cscope数据库之前重置该选项,并在添加它们之后对其进行设置。从那时起,当您在Vim中添加更多数据库时,如果数据库添加失败,您将收到(希望)有用的消息。
这里的问题是(a)有多个脚本试图加载cscope.out
文件,并且(b)没有遵循最佳实践,即在加载文件之前禁用“详细” cscope警告,然后再重新启用它,如建议的那样通过上面的帮助文字。
完整的错误输出应告诉您哪个脚本触发了此警告;对我来说,它看起来像这样:
Error detected while processing /home/me_and/.vim/plugin/cscope_maps.vim: line 42: E568: duplicate cscope database not added
修复方法是编辑~/.vim/plugin/cscope_maps.vim
文件以将其添加set nocscopeverbose
到cs add ...
行之前。此文件的我的版本已经在set cscopeverbose
紧随其后,但是如果不是,则也应该添加它。
找到适合我的解决方案(这里:http://thoughtsolo.blogspot.com/2014/02/cscope-issue-duplicate-cscope-database.html):
只需将此行"set nocscopeverbose"添加到〜/ .vimrc文件中即可.