我总是使用vim + cscope检查符号定义,我发现cscope总是采用如下声明:
struct sk_buff;
Run Code Online (Sandbox Code Playgroud)
作为一个定义,它使vim始终显示一个长列表文件来选择.的确,我只想要这个定义:
struct sk_buff {
...
};
Run Code Online (Sandbox Code Playgroud)
似乎ctags可以解决这个问题,但cscope可以解决这个问题吗?或者有些事我错了.
我检查了cscope源代码,我发现很难从头开始修改lex和yacc源代码.
我在一个目录(/ my/src /)中有一个巨大项目的源代码,我希望在其他目录(/ my/db /)中构建cscope文件.我怎样才能做到这一点 ?
我正在交叉编译cscope,但很惊讶失败了.但是,我成功构建了ctags而没有错误,为什么cscope构建失败?
错误消息如下:
`sh cflags "optimize='-O2'" doop.o` doop.c
CCCMD = cc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -std=c89 -O2 -Wall -ansi -pedantic -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -DPERL_GCC_PEDANTIC
`sh cflags "optimize='-O2'" doio.o` doio.c
CCCMD = cc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -std=c89 -O2 -Wall -ansi -pedantic -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -DPERL_GCC_PEDANTIC
`sh cflags "optimize='-O2'" regexec.o` regexec.c
CCCMD = cc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -std=c89 -O2 -Wall -ansi -pedantic -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -DPERL_GCC_PEDANTIC …Run Code Online (Sandbox Code Playgroud) 我希望cscope在MacVim中打开文件而不是vim,所以我试图将MacVim的路径作为cscope使用的EDITOR环境变量的值:
$ export EDITOR=/Applications/MacVim.app/Contents/MacOS/MacVim
如果我现在正在尝试从ctags中编辑文件,它将无法工作并抛出此错误消息:
$ MacVim[8384:10b] No Info.plist file in application bundle or no NSPrincipalClass in the Info.plist file, exiting
用命令行调用MacVim
$ /Applications/MacVim.app/Contents/MacOS/MacVim
尽管如此.
我怎样才能解决这个问题?
当我用这个命令搜索调用这个函数的函数时,如果有多个结果,缓冲区中只显示第一个,我如何用vi命令或快捷键转到下一个?
我正在使用屏幕编码使用vim和cscope.当我离开代码约5分钟(我的意思是出去喝咖啡等)并重新开始.我不能再使用cscope了.我会得到如下错误:
E262: error reading cscope connection 0E257: cstag: tag not found我正在尝试将 vim 与 ctags 和/或 cscope 一起使用,它工作得很好,但我遇到了一些问题,其中 ctags 跳转到错误的符号。例如,在下面的代码中,如果我将光标放在 main() 中的符号“a”上并按Ctrl+]转到定义,我将被定向到“虚拟结构”中的“char a”,但我想定向到我的 main 中的“int a”。ctags 或 cscope 可以处理这个问题吗?或者符号是否需要唯一的名称?
struct dummy
{
char a;
};
int main ()
{
int a = 1;
a = a + 2;
return a;
}
Run Code Online (Sandbox Code Playgroud) 在具有几个层的相当大的代码库中,是否有一种方法可以在vim中或从命令行中找到从基类派生的所有类?grep是一个选项但可能很慢,因为grep没有索引.
cscope打开我的文件vi.有没有办法改变它,以便它打开文件vim?
编辑:我试过:
export CSCOPE_EDITOR=vim
Run Code Online (Sandbox Code Playgroud)
出于一些奇怪的原因,如果我:help在打开的文件上键入,它会显示vim help哪个表明它已打开vim但似乎没有读取我的文件.vimrc.我该怎么读它.vimrc?
编辑2:机器/工具信息
[user@machine] $ printenv | grep -i cscope
CSCOPE_EDITOR=vim
[user@machine] $ vim --version
VIM - Vi IMproved 7.0 (2006 May 7, compiled Jul 10 2012 08:48:09)
Included patches: 1, 3-4, 7-9, 11, 13-17, 19-26, 29-31, 34-44, 47, 50-56, 58-64, 66-73, 75, 77-92, 94-107, 109, 202, 234-237
[user@machine] $ cscope -V
cscope: version 15.5
Run Code Online (Sandbox Code Playgroud) 我有一个 cmake 项目。我想轻松完成以下操作
我该如何设置?