vim下使用cscope阅读代码
来源:互联网 发布:淘宝怎么搜爱弹幕账号 编辑:程序博客网 时间:2024/06/09 17:15
添加cscope符号索引数据库后,可以调用"cscope find"命令进行查找,vim支持8种cscope的查询功能。如在代码中查找调用work()函数的函数,可以在vim命令状态下输入":cs find c work",回车即可。还可以进行字符串查找,它会对双引号或单引号括起来的内容查找。还可以输入一个正则表达式,这类似于egrep程序的功能。
:cs help (vim command下查询)
s: 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
g: 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
d: 查找本函数调用的函数
c: 查找调用本函数的函数
t: 查找指定的字符串
e: 查找egrep模式,相当于egrep功能,但查找速度快多了
f: 查找并打开文件,类似vim的find功能
i: 查找包含本文件的文件
注:1.使用vi阅读代码的目录位置一定要与生成索引文件时的目录位置相同。
即可以 vi ./***/***.c实现上面的要求;或者vi ***.c但要求(3)中的find或者cscope的生成索引的位置与当前位置相同。
Ctrl+]将跳到光标所在变量或函数的定义处 Ctrl+T返回
:cs find s ---- 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
:cs find g ---- 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
:cs find d ---- 查找本函数调用的函数
:cs find c ---- 查找调用本函数的函数
:cs find t: ---- 查找指定的字符串
:cs find e ---- 查找egrep模式,相当于egrep功能,但查找速度快多了
:cs find f ---- 查找并打开文件,类似vim的find功能
:cs find i ---- 查找包含本文件的文
Vim中自动加载cscope.out
首先来分享一个小脚本,可以帮助我们在项目中生成cscope.out 和ctags。
我把这个文件命名为cs.sh
#!/bin/sh
find . -name "*.h" -o -name "*.c" -o -name "*.cpp" -o -name "*.java"\
>cscope.files
cscope -bkq -i cscope.files
#cscope-indexer -r
ctags -R
需要的注意的是,上面的脚本中,生成的cscope.files中保存的是相对路径,而不是绝对路径。这样的话,在cscope 中查找tags的时候,是没法打开相应的包含查找结果的文件的。怎么避免这个问题呢?有如下两个方法:
1, 在cs.sh的脚本中,find命令后接一个变量PRO_PATH,这个PRO_PATH是当前项目的跟目录,这个时候cscope.files中保存的就是所有项目文件的绝对路径了。
2,在:cs add的时候,接一个prepend path
:cs add [cscope.out] [pre-path]
如
:cs add /opt/kernel/cscope.out
也可以将以下脚本写入vimrc文件实现自动搜索和添加
if has("cscope")
set csprg=/usr/bin/cscope
set csto=0
set cst
set csverb
set cspc=3
"add any database in current dir
if filereadable("cscope.out")
cs add cscope.out
"else search cscope.out elsewhere
else
let cscope_file=findfile("cscope.out", ".;")
let cscope_pre=matchstr(cscope_file, ".*/")
if !empty(cscope_file) && filereadable(cscope_file)
exe "cs add" cscope_file cscope_pre
endif
endif
endif
- vim下使用cscope阅读代码
- vim+cscope阅读代码
- 使用vim+cscope/ctags阅读内核代码
- linux下使用 vim + cscope 查看代码
- cscope+ctags+vim阅读代码
- linux 下使用 vim+cscope+ctags+taglist+NERDtree实现代码阅读编写
- linux下代码阅读 -- 配置vim+ctags+taglist+cscope[转]
- [转贴]linux下代码阅读 -- 配置vim+ctags+taglist+cscope
- Linux下代码阅读 -- 配置vim+ctags+taglist+cscope[转]
- linux下代码阅读 -- 配置vim+ctags+taglist+cscope
- inux下代码阅读 -- 配置vim+ctags+taglist+cscope
- linux下代码阅读 -- 配置vim+ctags+taglist+cscope
- inux下代码阅读 -- 配置vim+ctags+taglist+cscope
- vim+cscope阅读代码的利器
- vim + ctags/cscope 大型工程代码阅读
- vim+cscope阅读代码的利器
- vim + ctags + taglist + cscope 阅读代码
- vim+cscope+ctags+taglist 代码阅读
- 第一个Kinect For Windows V2.0 基于基础控件的Windows Store应用Demo
- 意念控制智能车项目进展2014.11.29-30
- IMAP功能在Foxmail中的设置
- HttpServletRequestWrapper相关
- 计算机实际上是如何工作的
- vim下使用cscope阅读代码
- nutch v1.9源码分析(2)——nutch bin和src目录解析及编译
- hdu 2079 选课时间(题目已修改,注意读题)
- iOS tableview 实现简单的搜索功能
- 社交招聘网络Linkedin的使用体验(HR招聘篇5)
- android:windowSoftInputMode属性详解
- SSH三大框架的工作原理及流程
- 我的一次java培训经历
- LiteIDE的sublime黑色 & 淡绿色 配色文件自定义版本