Vim中自动加载cscope.out
2016-09-24 19:43
337 查看
Vimer初成长,Vim + ctags + cscope 这个组合基本是每个Vimer的必备吧。虽然ctags已经足够强大,但是cscope可以做的更多。下面来分享下自己的vimrc脚本关于cscope的一部分,该脚本可以实现在项目的任一子目录下,自动的向上查找cscope.out,并把他add进来。
首先来分享一个小脚本,可以帮助我们在项目中生成cscope.out 和ctags。
我把这个文件命名为cs.sh
[java] view
plain copy
#!/bin/sh
find . -name "*.h" -o -name "*.c" -o -name "*.cpp" -o -name "*.java"\
>cscope.files
cscope -bkq -i cscope.files
ctags -R
需要的注意的是,上面的脚本中,生成的cscope.files中保存的是相对路径,而不是绝对路径。这样的话,在cscope 中查找tags的时候,是没法打开相应的包含查找结果的文件的。怎么避免这个问题呢?有如下两个方法:
1, 在cs.sh的脚本中,find命令后接一个变量PRO_PATH,这个PRO_PATH是当前项目的跟目录,这个时候cscope.files中保存的就是所有项目文件的绝对路径了。
2,在:cs add的时候,接一个prepend path
[java] view
plain copy
:cs add [cscope.out] [pre-path]
我用了第二个方法,所以就有了下面的vimrc片段,
[java] view
plain copy
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
首先来分享一个小脚本,可以帮助我们在项目中生成cscope.out 和ctags。
我把这个文件命名为cs.sh
[java] view
plain copy
#!/bin/sh
find . -name "*.h" -o -name "*.c" -o -name "*.cpp" -o -name "*.java"\
>cscope.files
cscope -bkq -i cscope.files
ctags -R
需要的注意的是,上面的脚本中,生成的cscope.files中保存的是相对路径,而不是绝对路径。这样的话,在cscope 中查找tags的时候,是没法打开相应的包含查找结果的文件的。怎么避免这个问题呢?有如下两个方法:
1, 在cs.sh的脚本中,find命令后接一个变量PRO_PATH,这个PRO_PATH是当前项目的跟目录,这个时候cscope.files中保存的就是所有项目文件的绝对路径了。
2,在:cs add的时候,接一个prepend path
[java] view
plain copy
:cs add [cscope.out] [pre-path]
我用了第二个方法,所以就有了下面的vimrc片段,
[java] view
plain copy
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.out
- cscope插件,项目根目录、任意子目录下打开vim自动加载cscope.out
- Vim中自动加载cscope.out
- vim自动加载cscope.out
- Vim中自动加载cscope.out
- Vim中自动加载cscope.out(Vim支持cscope)[zz]
- cscope插件, 项目任意子目录下开vim自动加载.
- 修改vim使得cscope自动添加cscope.out
- vim cscope ctags, 动态创建ctags, cscope.out,
- vim自动加载模板的插件~
- vim + ctags + taglist配置和使用 【及】 一键安装 ctags和cscope的方法 【及】vim语法高亮,自动缩进,python 自动缩进设置
- vim中session自动保存及加载
- vim ctags cscope lookupfile插件(包括如何自动生成索引tag、自动查找索引tag)
- VIM 自动加载Tags脚本
- vim编辑器环境设定(vim启动时自动加载设定)
- Windows下的VIM - 如何自动在后台更新cscope数据库文件
- vim + ctags + taglist配置和使用 【及】 一键安装 ctags和cscope的方法 【及】vim语法高亮,自动缩进,python 自动缩进设置
- vim+taglist+ctags+cscope+自动补齐
- vim自动加载Tlist 插件
- vim自动加载模板的插件~