最近在linux下写程序,实在是找不到好一点的编辑器,只能自己配置自己的vim,我相信开始会费一点时间,也许只有开始费一点时间,到后面才会省时间吧。
本文章会一点一点的进行完善,都是本人实践中遇到的。
1.安装使用ctags
1.从http://ctags.sourceforge.net/下载源代码包,解压缩生成源代码目录,
2.然后cd进入根目录执行./configure,
3.执行make,make install。
到此,我们的ctags就安装成功了。
我们可以试着查看你的ctags是否安装成功,
试着执行:
ctags --help
接下来就是如何使用ctags了。
首先生成ctags文件,在源码根目录执行
ctags -R
Ctrl + ] 跳转到光标所在符号的定义。
Ctrl + t 或 Ctrl + o 回到上次跳转前的位置。
:tn 下一个tag
:tp 上一个tag
2.安装使用taglist
taglist是一个可以将源码的方法,成员等等列举出来的工具。
类似于Android studio 的 Structure窗口,相当于eclipse的outline窗口
1.下载taglist http://www.vim.org/scripts/script.php?script_id=273下载安装包
2.进入~/.vim目录,将taglist安装包解压,解压后会增加了两个目录,doc和plugin,
3.我们进入doc目录,执行以下命令,可以在vim内执行help taglist.txt来查看帮助
helpztags .
4.我们打开~/.vimrc,加入前两行,如果你想以后打开文件自动打开taglist,请加入第三行。
如果你不想打开文件时自动打开taglist,则使用命令 :TlistToggle即可。关闭命令也是这个。
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
let Tlist_Auto_Open=1
移动光标到指定窗口就是 ctrl + w + w即可。
ctrl + w + w 光标移动下一窗口
ctrl + w + h 向左窗口移动光标
ctrl + w + l 向右窗口移动光标
3.安装cscope
一般现在vim都默认会安装好cscope,大家可以通过以下命令查看。
进入vim,在命令模式输入version,如果有+cscope,说明vim自己已经安装好,如果没有安装好,大家请自行安装。
安装下载方式:
可以在http://cscope.sourceforge.net/下载源码包,然后解压,编译安装。
./configure
make
make install
使用cscope,首先要生成cscope文件。
在源代码根目录执行
cscope -Rbq
这样生成cscope生成数据库之后,我们发现根目录多了三个文件。
cscope.in.out,cscope.out,cscope.po.out
有了这三个文件之后我们在这三个文件的目录打开vim
执行
cs add cscope.out
这样cscope.out数据库加入了vim里面。
然后就可以用cscope的命令了。
cscope命令概览。
cs find c|d|e|g|f|i|s|t name
用法 :cs find {querytype} {name}
{querytype} 对应 cscope 控制台接口编号和 nvi 的缺省命令:
0 或 s: 查找本 C 符号
1 或 g: 查找本定义
2 或 d: 查找本函数调用的函数
3 或 c: 查找调用本函数的函数
4 或 t: 查找本字符串
6 或 e: 查找本 egrep 模式
7 或 f: 查找本文件
8 或 i: 查找包含本文件的文
以上句子的意思,举个栗子:
想查询 app_usage()函数都在哪里调用了,我们在vim的命令模式执行:
cs find d app_usage
其他的同理。
但是我们发现每次进入vim都会先添加cscope.out,也就是执行cs add cscope.out,
然后每次执行也需要输入4个单词。太麻烦了。
我们通过配置让打开vim自动添加cscope.out
打开~/.vimrc,添加以下语句:
if filereadable("cscope.out")
cs add cscope.out
elseif $CSCOPE_DB != ""
cs add $CSCOPE_DB
endif
这样每次打开的时候就会先判断有没有cscope.out文件,然后存在的话自动添加。
然后再~/.vimrc文件,添加以下语句:
nmap <C-@>s :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap <C-@>g :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap <C-@>c :cs find c <C-R>=expand("<cword>")<CR><CR>
nmap <C-@>t :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap <C-@>e :cs find e <C-R>=expand("<cword>")<CR><CR>
nmap <C-@>f :cs find f <C-R>=expand("<cword>")<CR><CR>
nmap <C-@>i :cs find i ^<C-R>=expand("<cword>")<CR>$<CR>
nmap <C-@>d :cs find d <C-R>=expand("<cword>")<CR><CR>
这样我们以后就不用执行一段很长的命令了。
还是举个栗子,我们想看app_usage()函数在哪里被调用:
以前执行:
cs find d app_usage
我们配置好了快捷键之后,首先光标移动到app_usage函数,需要按Ctrl+@,然后按d,就相当于
执行了ccs find d app_usage命令。
到这里就配置好cscope了