cscope连接干扰不同的vim会话之间

时间:2018-08-09 00:33:27

标签: vim ctags cscope

我不确定是否已经问过这个问题,但是我尽力寻找解决方案。

这是我面临的问题:

我同时使用ctags和cscope来浏览c ++代码。我想在vim内使用ctags列出的标签,在vim之外使用cscope(搜索符号和文本)。如果我在cscope中搜索符号并打开文件(在vim中),则其他vim会话将开始使用cscope连接中的标签(而不是ctags列表中的标签)。我不喜欢cscope列出的标签,因为它们比ctags列出的更多。此外,我觉得哪些ctags列表与我更相关。目前,我终止了cscope连接,并且可以正常工作。但是,每次打开新的vim会话时,我都必须这样做。

如何避免使用cscope连接在现有vim会话中列出标签?

1 个答案:

答案 0 :(得分:0)

vim根据vimrc(对于gVim为_vimrc)配置文件中的以下设置添加了Cscope连接

cs添加cscope.out

取消此设置将阻止在打开vim会话时添加cscope连接,这应该可以解决您的问题。

例如,我的vimrc文件具有以下块(从Ref [2]中的cscope.vim复制)

if has("cscope")
    """"""""""""" Standard cscope/vim boilerplate
    " use both cscope and ctag for 'ctrl-]', ':ta', and 'vim -t'
    set cscopetag
    " check cscope for definition of a symbol before checking ctags: set to 1
    " if you want the reverse search order.
    set csto=0
    " add any cscope database in current directory
    if filereadable("cscope.out")
        cs add cscope.out
    " else add the database pointed to by environment variable 
    elseif $CSCOPE_DB != ""
        cs add $CSCOPE_DB
    endif
    " show msg when any other cscope db added
    set cscopeverbose
endif

注意:如果您仍要保留cscope搜索,但要优先考虑搜索中的ctag,则可以在vimrc中使用此设置。

设置csto = 1

参考文献:

http://vimdoc.sourceforge.net/htmldoc/if_cscop.html

http://cscope.sourceforge.net/cscope_maps.vim