如何修复重复的cscope?这是一种更好的方式吗?

Azn*_*veh 10 vim ctags cscope

这几年我用vim编程,我使用了ctags.我正在使用一个相当大的C/C++包,我需要找到函数的定义.我通常使用grep + ctags.最近我尝试使用cscope而不是ctags并将其与Vundle一起安装.我看到一些文件出现以下错误

E568: duplicate cscope database not added
Run Code Online (Sandbox Code Playgroud)

我搜索了网络,发现了这个:https: //blogs.oracle.com/natarajan/entry/avoiding_duplicate_cscope_database_error 它不起作用.

我怎样才能解决这个问题?

me_*_*and 9

扩展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
Run Code Online (Sandbox Code Playgroud)

修复方法是编辑~/.vim/plugin/cscope_maps.vim文件以将其添加set nocscopeverbosecs add ...行之前。此文件的我的版本已经在set cscopeverbose紧随其后,但是如果不是,则也应该添加它。


小智 6

找到适合我的解决方案(这里:http://thoughtsolo.blogspot.com/2014/02/cscope-issue-duplicate-cscope-database.html):

只需将此行"set nocscopeverbose"添加到〜/ .vimrc文件中即可.