vim+ctags+cscope(工欲善其事,必先利其器。)
2013-06-12 20:33
316 查看
1.vim ~/.vimrc
set encoding=utf-8
set fenc=cp936
set fileencodings=utf-8,uc
set termencoding=gbk
set tabstop=4
set ruler
set nu
set hlsearch "高亮搜索
set cursorline
syntax enable
colorscheme desert
set autochdir “这两句实现vim对tags的自动递归查找,主要第二句的分号不能少
set tags=tags;
2、ctags:
tar -zxvf ctags-5.5.tar.gz
cd ctags-5.5
./configure
make
sudo make install
在ubuntu12.04下可以apt-get install ctags
使用方法:
ctrl + ] -----------> 跳到函数或变量的定义处
ctrl + t -------------> 返回(ctrl + o亦可)
gf --------------> 跳到头文件定义的地方
gd ---------------->把鼠标放在函数或变量上,会高亮当前文件中搜索到的函数或变量
gg ---------------->回到当前文件第1行
shift + g -------------->回到文件文件最后1行
3、cscope
Vimer初成长,Vim + ctags + cscope 这个组合基本是每个Vimer的必备吧。虽然ctags已经足够强大,但是cscope可以做的更多。下面来分享下自己的vimrc脚本关于cscope的一部分,该脚本可以实现在项目的任一子目录下,自动的向上查找cscope.out,并把他add进来。
首先来分享一个小脚本,可以帮助我们在项目中生成cscope.out 和ctags。
我把这个文件命名为cs.sh
[java] view plaincopy
1. #!/bin/sh
2. find . -name "*.h" -o -name "*.c" -o -name "*.cpp" -o -name "*.java"\
3. >cscope.files
4. cscope -bkq -i cscope.files
5. ctags -R
需要的注意的是,上面的脚本中,生成的cscope.files中保存的是相对路径,而不是绝对路径。这样的话,在cscope 中查找tags的时候,是没法打开相应的包含查找结果的文件的。怎么避免这个问题呢?有如下两个方法:
1, 在cs.sh的脚本中,find命令后接一个变量PRO_PATH,这个PRO_PATH是当前项目的跟目录,这个时候cscope.files中保存的就是所有项目文件的绝对路径了。
2,在:cs add的时候,接一个prepend path
[java] view plaincopy
1. :cs add [cscope.out] [pre-path]
我用了第二个方法,所以就有了下面的vimrc片段,
[java] view plaincopy
1. if has("cscope")
2. set csprg=/usr/bin/cscope
3. set csto=0
4. set cst
5. set csverb
6. set cspc=3
7. "add any database in current dir
8. if filereadable("cscope.out")
9. cs add cscope.out
10. "else search cscope.out elsewhere
11. else
12. let cscope_file=findfile("cscope.out", ".;")
13. let cscope_pre=matchstr(cscope_file, ".*/")
14. if !empty(cscope_file) && filereadable(cscope_file)
15. exe "cs add" cscope_file cscope_pre
16. endif
17. endif
使用时,将光标停留在要查找的对象上,按下<C-@>g,即先按“Ctrl+@”,然后很快再按“g”,将会查找该对象的
4、参考网页:
http://my.oschina.net/u/554995/blog/59927
set encoding=utf-8
set fenc=cp936
set fileencodings=utf-8,uc
set termencoding=gbk
set tabstop=4
set ruler
set nu
set hlsearch "高亮搜索
set cursorline
syntax enable
colorscheme desert
set autochdir “这两句实现vim对tags的自动递归查找,主要第二句的分号不能少
set tags=tags;
2、ctags:
tar -zxvf ctags-5.5.tar.gz
cd ctags-5.5
./configure
make
sudo make install
在ubuntu12.04下可以apt-get install ctags
使用方法:
ctrl + ] -----------> 跳到函数或变量的定义处
ctrl + t -------------> 返回(ctrl + o亦可)
gf --------------> 跳到头文件定义的地方
gd ---------------->把鼠标放在函数或变量上,会高亮当前文件中搜索到的函数或变量
gg ---------------->回到当前文件第1行
shift + g -------------->回到文件文件最后1行
3、cscope
Vimer初成长,Vim + ctags + cscope 这个组合基本是每个Vimer的必备吧。虽然ctags已经足够强大,但是cscope可以做的更多。下面来分享下自己的vimrc脚本关于cscope的一部分,该脚本可以实现在项目的任一子目录下,自动的向上查找cscope.out,并把他add进来。
首先来分享一个小脚本,可以帮助我们在项目中生成cscope.out 和ctags。
我把这个文件命名为cs.sh
[java] view plaincopy
1. #!/bin/sh
2. find . -name "*.h" -o -name "*.c" -o -name "*.cpp" -o -name "*.java"\
3. >cscope.files
4. cscope -bkq -i cscope.files
5. ctags -R
需要的注意的是,上面的脚本中,生成的cscope.files中保存的是相对路径,而不是绝对路径。这样的话,在cscope 中查找tags的时候,是没法打开相应的包含查找结果的文件的。怎么避免这个问题呢?有如下两个方法:
1, 在cs.sh的脚本中,find命令后接一个变量PRO_PATH,这个PRO_PATH是当前项目的跟目录,这个时候cscope.files中保存的就是所有项目文件的绝对路径了。
2,在:cs add的时候,接一个prepend path
[java] view plaincopy
1. :cs add [cscope.out] [pre-path]
我用了第二个方法,所以就有了下面的vimrc片段,
[java] view plaincopy
1. if has("cscope")
2. set csprg=/usr/bin/cscope
3. set csto=0
4. set cst
5. set csverb
6. set cspc=3
7. "add any database in current dir
8. if filereadable("cscope.out")
9. cs add cscope.out
10. "else search cscope.out elsewhere
11. else
12. let cscope_file=findfile("cscope.out", ".;")
13. let cscope_pre=matchstr(cscope_file, ".*/")
14. if !empty(cscope_file) && filereadable(cscope_file)
15. exe "cs add" cscope_file cscope_pre
16. endif
17. endif
使用时,将光标停留在要查找的对象上,按下<C-@>g,即先按“Ctrl+@”,然后很快再按“g”,将会查找该对象的
4、参考网页:
http://my.oschina.net/u/554995/blog/59927
相关文章推荐
- 将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有图有真相)
- 使用vim + cscope/ctags
- 使用Vim+Ctags+Cscope阅读源代码
- 【vim】安装linux开发环境(vim + ctags + taglist + cscope + cppcomplete + global )
- vim+linux+ctags+taglist+winmanager+grep+cscope+supertab+visualmark--cscope
- VIM+ctags+cscope用法
- vim+cscope+ctags
- 将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有图有真相)
- VIM+cscope+ctags使用与总结
- Vim + ctags + cscope + taglist + nerdtree + winmanager 搭建详情
- vim+cscope+ctags浏览源码
- inux下代码阅读 -- 配置vim+ctags+taglist+cscope
- VIM-CTAGS-CSCOPE(持续学习中)
- 将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有图有真相)
- VIM快捷更新cscope和ctags
- 工欲善其事,必先利其器--vim-tips
- 内核源码阅读vim+cscope+ctags+taglist
- ctags+taglist+cscope+VIM for C development
- vim + ctags + cscope
- 使用vim + cscope/ctags