本节所用命令的帮助入口:
:help cscope
在前面的文章中介绍了利用tag文件,跳转到标签定义的地方。但如果想查找函数在哪里被调用,或者标签在哪些地方出现过,ctags就无能为力了,这时需要使用更为强大的cscope。
Cscope具有纯正的Unix血统,它最早是由贝尔实验室为PDP-11计算机开发的,后来成为商用的AT&T Unix发行版的组成部分。直到2000年4月,这个工具才由SCO公司以BSD license开源发行。
Cscope的主页在http://cscope.sourceforge.net/,如果你的计算机上没有cscope,你可以在此处下载它,在写本文时,它的最新版本是15.6。安装它非常简单,你只需要在cscope的源代码目录中执行下面三条命令:
./configure make make install
在windows上也可以使用cscope,在cscope的主页上可以下载到由DJGPP编译器编译的cscope for windows,不过这个版本不能和vi一起工作。或者你可以下载cygwin工具包(http://www.cygwin.com/),这个工具包中也包含了cscope。
在http://iamphet.nm.ru/cscope/有Sergey Khorev预编译的一个Win32版本的cscope,这个版本的cscope可以很好的与windows版本的vim搭配使用。
cscope的用法很简单,首先需要为你的代码生成一个cscope数据库。在你的项目根目录运行下面的命令:
cscope -Rbq
这些选项的含义见后面。这个命令会生成三个文件:cscope.out, cscope.in.out, cscope.po.out。其中cscope.out是基本的符号索引,后两个文件是使用”-q“选项生成的,可以加快cscope的索引速度。在windows上使用cscope时,你可能会遇到-q选项被忽略的提示,解决办法请看这篇文章:Windows下cscope -q选项出错的解决。
在缺省情况下,cscope在生成数据库后就会进入它自己的查询界面,我们一般不用这个界面,所以使用了”-b“选项。如果你已经进入了这个界面,按CTRL-D退出。
Cscope在生成数据库中,在你的项目目录中未找到的头文件,会自动到/usr/include目录中查找。如果你想阻止它这样做,使用”-k“选项。
Cscope缺省只解析C文件(.c和.h)、lex文件(.l)和yacc文件(.y),虽然它也可以支持C++以及Java,但它在扫描目录时会跳过C++及Java后缀的文件。如果你希望cscope解析C++或Java文件,需要把这些文件的名字和路径保存在一个名为cscope.files的文件。当cscope发现在当前目录中存在cscope.files时,就会为cscope.files中列出的所有文件生成索引数据库。通常我们使用find来生成cscope.files文件,仍以vim 7.0的源代码为例:
cd ~/src/vim70 find . –type f > cscope.files cscope -bq
这条命令把~src/vim70目录下的所有普通文件都加入了cscope.files,这样,cscope会解析该目录下的每一个文件。上面的cscope命令并没有使用”-R“参数递归查找子目录,因为在cscope.files中已经包含了子目录中的文件。
注意:find命令输出的文件以相对路径表示,所以cscope.out的索引也相对于当前路径。如果你要在其它路径中使用当前的cscope.out,需要使用下面介绍的-P选项。
Cscope只在第一次解析时扫描全部文件,以后再调用cscope,它只扫描那些改动过的文件,这大大提高了cscope生成索引的速度。
下表中列出了cscope的常用选项:
- -R: 在生成索引文件时,搜索子目录树中的代码
- -b: 只生成索引文件,不进入cscope的界面
- -q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
- -k: 在生成索引文件时,不搜索/usr/include目录
- -i: 如果保存文件列表的文件名不是cscope.files时,需要加此选项告诉cscope到哪儿去找源文件列表。可以使用”–“,表示由标准输入获得文件列表。
- -Idir: 在-I选项指出的目录中查找头文件
- -u: 扫描所有文件,重新生成交叉索引文件
- -C: 在搜索时忽略大小写
- -Ppath: 在以相对路径表示的文件前加上的path,这样,你不用切换到你数据库文件所在的目录也可以使用它了。
要在vim中使用cscope的功能,需要在编译vim时选择”+cscope“。vim的cscope接口先会调用cscope的命令行接口,然后分析其输出结果找到匹配处显示给用户。
在vim中使用cscope非常简单,首先调用”cscope add“命令添加一个cscope数据库,然后就可以调用”cscope find“命令进行查找了。vim支持8种cscope的查询功能,如下:
- s: 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
- g: 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
- d: 查找本函数调用的函数
- c: 查找调用本函数的函数
- t: 查找指定的字符串
- e: 查找egrep模式,相当于egrep功能,但查找速度快多了
- f: 查找并打开文件,类似vim的find功能
- i: 查找包含本文件的文件
例如,我们想在vim 7.0的源代码中查找调用do_cscope()函数的函数,我们可以输入:”:cs find c do_cscope“,回车后发现没有找到匹配的功能,可能并没有函数调用do_cscope()。我们再输入”:cs find s do_cscope“,查找这个C符号出现的位置,现在vim列出了这个符号出现的所有位置。
我们还可以进行字符串查找,它会双引号或单引号括起来的内容中查找。还可以输入一个正则表达式,这类似于egrep程序的功能,但它是在交叉索引数据库中查找,速度要快得多。
vim提供了一些选项可以调整它的cscope功能:
- cscopecscopeprg选项用于设置cscope程序的位置。
- cscopecscopequickfix设定是否使用quickfix窗口来显示cscope的结果,详情请”:help cscopequickfix“;
- 如果你想vim同时搜索tag文件以及cscope数据库,设置cscopecscopetag选项;
- cscopecscopetagorder选项决定是先查找tag文件还是先查找cscope数据库。设置为0则先查找cscope数据库,设置为1先查找tag文件。我通常设置为1,因为在tag文件中查找到的结果,会把最佳匹配列在第一位。
vim的手册中给出了使用cscope的建议方法,使用命令”:help cscope-suggestions“查看。
下面是我的vimrc中关于cscope接口的设置:
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " cscope setting """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" if has("cscope") set csprg=/usr/bin/cscope set csto=1 set cst set nocsverb " add any database in current directory if filereadable("cscope.out") cs add cscope.out endif set csverb endif nmap <C-@>s :cs find s <C-R>=expand("<cword>")<CR><CR> nmap <C-@>g :cs find g <C-R>=expand("<cword>")<CR><CR> nmap <C-@>c :cs find c <C-R>=expand("<cword>")<CR><CR> nmap <C-@>t :cs find t <C-R>=expand("<cword>")<CR><CR> nmap <C-@>e :cs find e <C-R>=expand("<cword>")<CR><CR> nmap <C-@>f :cs find f <C-R>=expand("<cfile>")<CR><CR> nmap <C-@>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR> nmap <C-@>d :cs find d <C-R>=expand("<cword>")<CR><CR>
下面的两个链接是cscope主页提供的cscope使用方法,也可以作为参考:
vim/cscope指导:http://cscope.sourceforge.net/cscope_vim_tutorial.html
在大项目中使用cscope:http://cscope.sourceforge.net/large_projects.html
在vim的网站上有很多与cscope相关的插件,有兴趣可以去看一下。
我以前写的Vim + Cscope/Ctags。
[参考文档]
- vim帮助文件
- vim中文手册
- http://cscope.sourceforge.net/
- http://iamphet.nm.ru/cscope/
- cscope手册
你好 我在编译的时候总是出错误,提示ncurses.h找不到头文件。
当时我在/usr/include 文件夹里面就可以找得到这个头文件。
不知道是什么原因。需要在放在特殊的文件夹里面进行编译码?
楼主怎样通过配置的方式指定prepend path,命令行模式是这样 “:cscode add /projects/vim/cscope.out /usr/local/vim “;可以用,但是这样很麻烦,我将”cs add /projects/vim/cscope.out /usr/local/vim”写到.vimrc 中无效,上面的命令我通过我的情况做出修改了,但是prepend path还是空,请问这个问题怎么解决??
内容很好,但是导航栏不是很好啊!我想看同类型的前几篇文章不太好找。
Easwy老师好,我的vim版本为:
$ vim –version
VIM – Vi IMproved 7.4 (2013 Aug 10, compiled Jan 2 2014 19:40:46)
在~/.vimrc中设置类似如下命令:
nmap s :cs find s =expand(“”)
nmap s :scs find s =expand(“”)
但一按ctrl+@+s等键,vim就会卡死,不能操作。
请问为什么会出现上述问题?谢谢!
ps:用:cs find s 等命令没有问题。
Vim卡死的原因是 你在按<ctrl>+@+s时可能因为输入速度的问题,按成了<ctrl>+s,而<ctrl>+s在终端驱动里是“停止输入”的意思,所以表现的是Vim没反应了。遇到这种情况,你可以按<ctrl>+Q恢复。
你可以把:cs find s 命令映射成别的键,以避免再出现此类问题。
发现如果路径有空格的话,find . -type f > cscope.files 生成的文件被 cscope 执行,会有问题,报错找不到文档。比如路径是:src/util/packaging/win os/crypt
cscope.files里面就会有两行:
src/util/packaging/win 和 os/crypt
尝试了下,添加双引号就行:find . -name “*” -type f -exec echo ‘”‘{}'”‘ >> cscope.files \;
最后的键位映射没看懂,照抄过去没有用啊,这是为什么?
能不能稍微提一下这几个映射的含义?我的理解就是Ctrl+..
但是调不出来。。
举个例子,如果想查看函数被调用的地方,可以先按下CTRL-@,然后再按c。其实CTRL-@不用按下SHIFT,直接按CTRL-2就可以了。
哦,谢谢,我发现是我手速的问题。。。。。。。。。
:cs show 后提示没有cs链接
:cs add cscope.out vi 没有反应
学习了,强大的插件
博主你好,首先很感谢你的这一系列文章,对我帮助很大,非常感谢。
这里有个问题请教一下:
对于cpp文件,经常会有不同的类中有相同名字的函数的情况,比如一个“窗口系统”的工程,可能会有很多类中都有draw()这样的函数。
我在使用cscope生成数据库并添加到vim后,搜索某一个类的draw()函数,想要看他的声明或调用关系时,得到的结果包括了所有的类中的draw()函数。
而在Source Insight中,搜索的结果是只针对这个类的draw()函数的。
请问博主,vim+cscope是否可以做到Source Insight这样的处理。
我也没找到好的办法解决这个问题,应该可以通过插件实现,不知道现在有没有类似的插件
@panta
手册里写的很清楚了,第二个和第三个命令用于给cscope传递特定的参数,例如,第三个命令相当于使用如下参数调用cscose:
cscope -P /usr/local/vim -C
至于参数的含义,参见cscope手册
请问博主,cscope手册中给出了3个add命令的示例:
:cscope add /usr/local/cdb/cscope.out
:cscode add /projects/vim/cscope.out /usr/local/vim
:cscope add cscope.out /usr/local/vim -C
其中第二、三个具体是什么意思?
@penzo
nmap <C-@>c :cs find c <C-R>=expand(“<cword>”)<CR><CR>
这行是说把”CTRL-@ c”键映射为”:cscope find c”命令,来查找当前光标下函数被调用的地方。
:help :<cword>
请问博主,在vimrc映射的这行代表什么意思,能详细解释一下吗?谢谢。
nmap c :cs find c =expand(“”)
@LiangFeng
果然如你所说,现在问题解决了,我发在这里:
http://easwy.com/blog/archives/cscope_sort_option_on_windows/
@Easwy
Windows版本的cscope是支持-q选项的,出现以上错误是因为没找到合适的sort命令。所以只要cscope进程的工作目录下有GNU版本的sort就可以了。注意是进程的工作目录,不是可执行程序的目录。具体原因看一下cscope的代码片段。
build.c
#ifdef WIN32
snprintf(sortcommand, sizeof(sortcommand), “set LC_ALL=C && sort -T %s %s”, tmpdir, temp1);
#else
snprintf(sortcommand, sizeof(sortcommand), “env LC_ALL=C sort -T %s %s”, tmpdir, temp1);
#endif
@west
我试了我所用的cscope for windows,有同样的提示,我认为是windows版的cscope不支持-q选项:
@Easwy
我成功生成过cscope.in.out, cscope.po.out这两个文件。那说明-q选项应该正常过吧
@west
windows下的cscope好像不支持-q选项,每次都有这样的提示。
我的环境变量path只有cscope.exe 和 sort.exe所在的文件夹。设置好后运行正常。但是重启后也会出现以下错误:
输入文件指定了两次
cscope: can not create invert index; ignoring -q option
cscope: remove files ncscope.in.out and ncscope.po.out
我把path删掉又重建个一模一样的就又正常了
请问这是怎么回事?有解决办法吗?
@whywhatwhenhow
:help keycodes中列出键盘上的特殊按键的名称和编码
<Nul>代表的是Nul,它的编码是0
我还没见过使用<Nul>的
晕,怎么还不完整
貌似第二个问题不完整,重发一次
在help:keycodes 中 的标识符是Nul,含义是“零”。这是什么意思呢?
@whywhatwhenhow
使用:version命令
查看有没有”+cscope”
您好,我是名学生,可能问的问题比较初级,恕我冒昧。
我是用sudo apt-get install cscope安装的cscope。可以正常使用,但我仍想知道vim查看cscope是否可用的命令是什么?
在help:keycodes 中 的标识符是,含义是“零”。这是什么意思呢?
非常感谢!这个问题弄清楚了。原来是我将ptag的预览窗口和quickfix窗口搞混淆了。记得当时在vim帮助文档中查看ptag命令时提到需要编译是加入quickfix支持,一直误以为它也是quickfix窗口的一种,后来又在vim中加入cscope,觉得用预览窗口查看函数的定义非常方便,不用来回跳转或切换窗口,看到cscope中有quickfix选项,所以想在cscope时实现有类似效果,现在看来这完全不是一回事。
@nick198119
只需要配置cscopequickfix就可以了,你现在的搜索内容已经保存在quickfix缓冲区了,你只需要用:cw命令把quickfix窗口显示出来即可。
:help quickfix查看更多的quickfix命令
用:vesion查看了,加入了编译时quickfix功能,而且用:ptag命令也可打开quickfix窗口查看tags。问题是我要用什么命令打开quickfix窗口查看cscope的搜索结果?如我可用:scs find c main 或者对应的键映射查询cscope的搜索结果,它是分割窗口显示的。那么有没有类似的命令使它显示在quickfix窗口?
@nick198119
你的cscopequickfix选项设置是正确的,你说的不能在quickfix窗口中输出查找结果是什么意思?用:version看一下,你的quickfix功能是否编译进来了?
我的这篇文章里,就定义了一些cscope的快捷键,在vim.org上专门有个插件定义了cscope的快捷键的。
在vim中使用了cscope一段时间,有一个问题,我一直没找到答案,向您请教:
在vim中使用ctags时可以用ptag在quickfix窗口中输出查找结果,但在cscope的文档中却没有看到类似命令,只有直接跳转、水平分割、垂直分割三种方式显示搜索结果。我按照文档提示在.vimrc中设置“set cscopequickfix=s-,c-,d-,i-,t-,e-”却没有任何效果(文档提示需要编译时开启quickfix选项,但是却可以正常使用ptag命令,在vim中gcc编译时也可正常开启quickfix窗口)。
请问,要怎样在能在quickfix窗口中显示查询结果?如: 用“:cs find c main”,怎样才能让它在quickfix窗口中显示结果?如果要想在源文件中用快捷键查询cscope,要怎样进行键映射?
@joecgs
看这里如何将cscope安装到指定目录
easwy:您好,感谢您的这一系列的文章,帮助我很快地熟悉使用vim,谢谢。
我现在是用远程的shell来写程序,服务器没有安装cscope,而又不能获取root权限。所以,我想能不能通过和安装vim一样的方式来安装cscope?
(以下为CSDN评论的转帖)
#sohuandyahoo 发表于2008-01-08 13:22:39 IP: 60.31.124.*
在windows下不能用-q选项?我用了-q在gvim里面有些函数符号就找不到了,在命令行下直接用cscope打开,显示可以找到,不过ctrl d退出后索引文件就被删了。如果不用q选项生成索引就没问题,奇怪
#btwo0 发表于2008-01-11 17:16:04 IP: 210.176.71.*
谢谢,第二种方法是可以的。
#newone 发表于2008-01-23 22:33:40 IP: 220.181.38.*
楼主,你的帖子很有用,我也照着使用了,这里先谢谢:)
但我有两个问题:
1)c++文件的索引建立似乎没有用??
我的项目都是c++文件,直接cscope -Rqb 和导出到cscope.files在cscope -qb得到的3个文件一样(说明他们是一样的)。
2)cscope的s,c,d的查找方式好像有问题,比如有两个函数:
init(),someclass::init()。对两个执行cs find s得到的结果是一样的(都是init()的声明),它好像没有办法区分c++的类名字空间,而只是函数名的匹配,你的情况是这样的吗??
如果你知道,请一定告诉我:)
#easwy 发表于2008-01-28 14:27:26 IP: 213.70.90.*
1) 不知道你的实验环境是怎么样的。cscope缺省情况下是不会解析c++文件的。
2) 确实是这样,cscope不能区分类名,它会把所有符合的内容列出来。这一点和ctags是一样的。
(以下为CSDN评论的转帖)
#btwo0 发表于2007-12-24 11:48:23 IP: 210.176.71.*
我想我找到问题的所在了,是路径的问题。当我在项目根目录下输入命令“cscope -P .“,会出现cscope的command line运行界面,这时,我再查找”val”,就可以找到了,可是我无法在vim中使用cscope,可能是我path设置的不对,可以帮我看一下么?
我的项目根目录是c:\btwo0,子目录是c:\btwo0\proj1; c:\btwo0\proj2…,vim的安装目录是c:\Program Files\Vim,cscope的目录是c:\Program Files\cscope
#easwy 发表于2007-12-24 12:32:16 IP: 213.70.90.*
假设你是在c:\btwo0下运行“cscope -Rb”生成了cscope.out。那么你在vim中,使用”:cd c:/btwo0″来切换工作路径,用”:cs add cscope.out”,然后就可以查找val了。
如果你vim的当前工作路径没有设置为c:\btwo0,可以用”:cs add cscope.out c:/btwo0″命令来增加cscope连接。
通常我在使用时,vim的工作路径始终在项目根目录。第二种方法我没测试过,理论上应该是可行的。
#btwo0 发表于2007-12-24 13:14:42 IP: 210.176.71.*
太谢谢了,第一种方法是对的,我已经可以找到val了,第二种方法不对阿,“:cs show”的结果是“no cscope connection”
我现在可以用“cscope+ctags+vim”了,都是从lz的文章里学的,大有收获阿
#easwy 发表于2007-12-24 13:52:50 IP: 213.70.90.*
还是假设你是在c:\btwo0下运行“cscope -Rb”生成了cscope.out。第二种方法应该是”:cs add c:/btwo0/cscope.out c:/btwo0″
(以下为CSDN评论的转帖)
#btwo0 发表于2007-12-21 13:21:51 IP: 210.176.71.*
按照muzuiget的方法作了一遍,但在vim用命令“cscope add cscope.out”,依然出现错误“出现E623 无法生成cscope进程”。我已经设置了set csprg=c:\Program\ Files\cscope,PATH变量里添加了c:\Program\ Files\cscope。我用的是windows下的cscope, 来源是http://iamphet.nm.ru/cscope
有什么办法啊
#easwy 发表于2007-12-21 14:14:50 IP: 213.70.90.*
你在命令行窗口下可以直接用cscope命令了吗?用cscope -h试试,看能不能执行成功
如果已经可以,你所csprg的名字设置成下面的试试:
set csprg=cscope
我感觉还是和csprg的设置有关,也可以试试把路径分隔符换成/。
另,你的c:\Program\ Files\cscope是一个目录?还是一个文件?csprg需要的是cscope文件,而PATH变量设置的是一个目录
#btwo0 发表于2007-12-21 15:31:48 IP: 210.176.71.*
我可以在命令行直接使用cscope命令,如果把PATH中的c:\Program\ Files\cscope去掉,则找不到该命令,所以我的系统应该调用的是该路经下的cscope.
c:\Program\ Files\cscope是一个目录,我尝试设置set csprg=c:\Program\ Files\cscope\cscope.exe,当我运行”cscope add cscope.out”,会导致gvim 7.1当掉。从task manager看,cscope已经运行了,gvim is not responding.
同样,我也试了设置set csprg=cscope,运行”cscope add cscope.out”,不会出现E623错误。但当我运行命令”cs find s val”时,错误为”E259 no matchs found for cscope query s of val”。我的文件都在一个目录里,应该不是path dependency的问题。
不好意思,太长篇了
#easwy 发表于2007-12-21 17:56:11 IP: 213.70.90.*
你的cscope已经工作了,只是找不到名为val的符号
(以下为CSDN评论的转帖)
#muzuiget 发表于2007-06-08 23:29:05 IP: 218.19.243.*
捣鼓一阵,发现几个问题
Cygwin下那个没有cscope.exe,只有mlcscope.exe。
开始我用Cygwin的控制台生成那三个文件,把Cygwin/bin目录加进PATH,vim下执行:cscope add cscope.out,出现“E623 无法生成cscope进程”。设置好cscopeprg(先取消PATH),问题依旧
然后再在CygwinCygwin工具集bin目录下的mlcscope.exe复制一份改名为cscope.exe,再执行:cscope add cscope.out,命令提示符闪了一下,没有错误信息,执行:cs show,出现“没有cscope连接”
在然后查到了个tips,http://vim.sourceforge.net/tips/tip.php?tip_id=1362看不懂,下面 Additional Notes说“This patch is now official. It is patch Patch 7.0.184.”我已经是7.1了,查了下帮助手册,没发现说如何用mlcscope.exe,在cscopeprg填上mlcscope.exe的路径再试(先取消PATH),依然失败,郁闷,不懂怎么用,放弃……
用http://iamphet.nm.ru/cscope下的,解压后两个文件,一个是sort.exe,添加进PATH,生成生成数据库,出现四楼的问题
cscope: can not create invert index; ignoring -q option
cscope: remove files ncscope.in.out and ncscope.po.out
只有一个cscope.out生成,真多波折……,在windows下真麻烦,万般无奈,回到http://iamphet.nm.ru/cscope看看,咦?下边有说明,在PATH里,cscope的路径要放在系统目录前面,因为系统本身有sort.exe了,于是改了PATH,再试,ok,vim下连接数据库,ok,执行cs show,没问题,终于搞定,娃哈哈哈哈。
看了楼主的vim文章大有收获,thanks!
(以下为CSDN评论的转帖)
#mslk 发表于2007-05-07 00:18:23 IP: 221.15.35.*
cscope在windows下使用mingw编译为native的方法
http://blog.csdn.net/mslk/archive/2…06/1598513.aspx
http://www.chinalinuxpub.com/bbs/showthread.php?p=281675#post281675
有编译好的版本下载:
http://www.chinalinuxpub.com/bbs/attachment.php?attachmentid=4916
#mslk 发表于2007-05-07 00:23:21 IP: 221.15.35.*
cscope15.6-win32在这里下载:
http://www.chinalinuxpub.com/bbs/attachment.php?attachmentid=4917
#muzuiget 发表于2007-06-08 00:19:33 IP: 59.41.242.*
在windows下,我用Cygwin的控制台生成了那三个文件,但在vim用ex命令”cscope add cscope.out”
但是“出现E623 无法生成cscope进程”
怎么办?
#easwy 发表于2007-06-08 10:35:47 IP: 213.70.90.*
我也遇到过这种情况,可能是你的cscopeprg没设对,检查一下。
:help cscopeprg
(以下为CSDN评论的转帖)
#flyincosmic 发表于2007-05-03 16:32:48 IP: 220.192.46.*
我怎么建立数据库的时候,总是告诉我输入文件指定了两次,开始还以为是cscope.files的问题,结果只保留了cpp,仍然如此
info
cscope: can not create invert index; ignoring -q option
cscope: remove files ncscope.in.out and ncscope.po.out
在使用的时候,无论搜索什么,都会得到两对同样的结果,一个是完全大写的文件名标识,另一个则是完全小写的,都指向同样的地方(因为本就是一个函数、结构……)
#easwy 发表于2007-05-04 12:19:18 IP: 219.133.160.*
那两句提示是说,不能生成cscope的快速索引文件。
我没用过windows下的cscope,不太清楚是否和cscope的版本有关。
你用的是http://iamphet.nm.ru/cscope/下载的cscope吗?把你创建数据库的命令发出来。
#flyincosmic 发表于2007-05-06 20:33:44 IP: 220.207.37.*
就是csope -Rbq
#flyincosmic 发表于2007-05-07 00:01:32 IP: 220.192.41.*
cscope 用的是你提供链接的在win2k下使用cscope的文章作者编译的版本, 源代码当然是iamphet.nm.ru的
(以下为CSDN评论的转帖)
#sk_1980 发表于2007-04-10 13:52:50 IP: 222.66.163.*
问个问题,使用cscope的时候每次都要输入命令,能不能光标定位到一个函数名,然后按某个快捷键直接给出调用该函数的列表
#easwy 发表于2007-04-10 14:40:28 IP: 213.70.90.*c”就可以完成你所说的功能,它是由c :cs find c =expand(““)
当然可以,你只需要在你的vimrc中增加一个键映射。
在我文章中的”
nmap
进行映射的。
或者你可以下载下面的插件,把它放在你的.vim/plugin/目录下:
http://www.vim.org/scripts/script.php?script_id=51
#sk_1980 发表于2007-04-13 16:46:22 IP: 222.66.163.*
thanks,我试试