Linux下开发:vim + cscope + ctags代码阅读模式之环境搭建

vim + cscope + ctags代码阅读模式:                                                                    


在Linux中没有windows中好用的IDE开发工具,我们也尽量不要依赖图形开发工具。                          
以命令行模式开发能排除干扰,极大的提高开发的效率。


以ubuntu开发环境为例:                                                                                
cscope安装:
第一步:
sudo apt-get install cscope                                                                           
通过scope --version命令查询到版本,则证明安装成功。                                                   


第二步:                                                                                              
在vim配置文件vimrc中添加cscope的配置选项,以便打开vim即可加载cscope .                                     


scope setting --                                                                                      
if has("cscope")                                                                                      
set csprg=/usr/bin/cscope " 指定用来执行cscope的命令                                                  
set csto=0 " 设置cstag命令查找次序:0先找cscope数据库再找标签文件;1先找标签文件再找cscope数据库      
set cst " 同时搜索cscope数据库和标签文件 
set cscopequickfix=s-,c-,d-,i-,t-,e- " 使用QuickFix窗口来显示cscope查找结果                           
set nocsverb
if filereadable("cscope.out") " 若当前目录下存在cscope数据库,添加该数据库到vim                       
cs add cscope.out
elseif $CSCOPE_DB != "" " 否则只要环境变量CSCOPE_DB不为空,则添加其指定的数据库到vim                  
cs add $CSCOPE_DB 
endif
set csverb                                                                                            
map <F4> :cs add ./cscope.out .<CR><CR><CR> :cs reset<CR>                                             
imap <F4> <ESC>:cs add ./cscope.out .<CR><CR><CR> :cs reset<CR>                                       
" 将:cs find c等Cscope查找命令映射为<C-\>c等快捷键(按法是先按Ctrl+\,松手后再按下c)                  
nmap <C-\>s :cs find s <C-R>=expand("<cword>")<CR><CR> :copen<CR><CR>
nmap <C-\>g :cs find g <C-R>=expand("<cword>")<CR><CR> 
nmap <C-\>d :cs find d <C-R>=expand("<cword>")<CR><CR> :copen<CR><CR>                                 
nmap <C-\>c :cs find c <C-R>=expand("<cword>")<CR><CR> :copen<CR><CR>                                 
nmap <C-\>t :cs find t <C-R>=expand("<cword>")<CR><CR> :copen<CR><CR>                                 
nmap <C-\>e :cs find e <C-R>=expand("<cword>")<CR><CR> :copen<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> :copen<CR><CR>                                 
endif


                                                                                                      
第三步:                                                                                              
注意:补充一点:在写这个Makefile之前,先用sudo apt-get install ctags安装ctags                           
进入需要阅读工程的根目录,设置cscope的信息:如导入工程到数据库等
如我的工程在/tmp/project, 我在/tmp/project目录下新建一个Makefile ,内容如下,然后执行make                                     
all:
        # find . -name "*.[h|c]" > cscope.files                                                       
        find `pwd` -name "*.[ch]" -o -name "*.cpp" > cscope.files                                     
        #cscope -bR -i cscope.files<span lang="en-us" xml:lang="en-us"><span style="font-family:'Times New Roman';"><span style="font-size:13px;"></span></span></span>
        cscope -bkq -i cscope.files
        ctags -R
        CSCOPE_DB=/home/tommy/share/senseIO_2/cscope.out; export CSCOPE_DB                            
        #CSCOPE_DB=$(shell pwd)/cscope.out; export CSCOPE_DB                                          
其中#部分代表注释:当时替换成#部分,运行cscope会失败,未找到具体原因。
其中/home/tommy/share/senseIO_2/cscope.out是工程的目录的绝对路径下生成的cscope.out文件,这需要根据实际状况替换。


第四步:
用vim打开工程文件,即可用cscope或者ctags命令去搜索以及跳转。详细见第二篇:                            

Linux开发:vim + cscope + ctags代码阅读模式之基本使用方法                   

参考:
vimrc文件配置项添加
http://cscope.sourceforge.net/cscope_maps.vim

cscope官方参考文档:
http://cscope.sourceforge.net/cscope_vim_tutorial.html
http://cscope.sourceforge.net/large_projects.html

cscope中这样生成cscope.files(绝对路径的参考):
https://blog.csdn.net/david_xtd/article/details/7737653#

vi/Vim + Cscope/Ctags
https://blog.easwy.com/archives/vim-cscope-ctags/

猜你喜欢

转载自blog.csdn.net/tommymusk/article/details/80084120
今日推荐