基本上来讲,vim+TagList+cscope+quickfix,已然非常强悍,远胜于SourceInSight.
使用鼠标果然是比较低效率的方式:)
---------------------------------------------------------------
快捷键映射:
映射 助记 说明
* ,f+s symbol 查找本C符号
* +d define 查找本定义
* +c callme 查找调用本函数的函数
* +t 查找本字符串
+e egrep 查找本egrep模式?
+f file 查找本文件
+i include 查找包含本文件的文件
* +g 查找本函数调用的函数
,cs 生成并添加cscope索引
,cw 下拉框列表显示
比之cscope映射的“\”按键, 用“,”要快太多了。
而且开始使用cscope的时候在终端下\加组合键,会导致终端锁定“假死” ctrl-s? 当时不知道ctrl-q就只能重启终端了-_-!~
f-t跳转之后,只能通过ctrl-o回来,而通常的ctrl-t无效。
是不是有其他跳转之后回不来的,也都是如此?
---------------------------------------
生成索引
$ cscope -Rbkq<回车>
# R 表示把所有子目录里的文件也建立索引
# b 表示cscope不启动自带的用户界面,而仅仅建立符号数据库
# q 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
# k 在生成索引文件时,不搜索/usr/include目录
再vimrc里面保存以下函数,能够非常容易的使用快捷键生成cscope.out,方便快捷。
func! CscopeTags ()
exec "w"
if filereadable("cscope.out")
exec "!rm -rf cscope.*"
endif
exec "!find -name '*.c' -o -name '*.h' -o -name '*.cpp' -o -name '*.cc' \
-o -name '*.C' >cscope.files"
exec "!cscope -Rbkq -i cscope.files"
"exec "!ctags -R"
cs add cscope.out $PWD
endfunc
现在还有问题,在父目录建立索引 此时进入vim是可以检索子目录的,但是,
cd到子目录下面,cscope不可用,提示没有cscope检索文件.就是说当前目录下必须
有索引文件才可用。
查到资料说,要用 -P选项:
add : 添加一个新的 cscope 数据库/连接。
用法 :cs add {file|dir} [pre-path] [flags]
[pre-path] 用来通知 cscope 使用 -P [pre-path] 选项。
[flags] 可以用来给 cscope 传递额外的选项。
所以要改为 cs add cscope.out $PWD
以便在添加cscope.out时,使用pre-path选项。
但是依然无效,
怎么样才能使得在父目录下建立索引,在子目录下打开文件时同样可用父目录下的索引??
阅读(1255) | 评论(0) | 转发(0) |