在vim中用了一阵子ctags,确实美中不足。ctags只能根据调用函数的地方查找定义该函数的地方,不能根据定义函数的地方查找都有哪些地方调用了 该函数。于是又学习了cscope。Cscope在主页上说它具有毋庸置疑的UNIX血统,早在PDP-11的时代就已经在贝尔实验室开发出来了。我的 Linux是SuSE10.0,系统自带的有cscope软件。 一、将 http://cscope./cscope_maps.vim 另存为文件~/.vim/plugin/cscope_maps.vim 二、因为cscope将“ctrl+空格”作为映射键,但是这样会调出输入法,因此将~/.vim/plugin/cscope_maps.vim文件中的替换为(或者是你没有映射过的你喜欢的快捷键) 三、进入C语言源代码目录,建立符号表: mishuang@msh:~/linux/linux0.11/source-0.11> cscope -R ctr-D退出后,当前目录会多一个文件cscope.out,这个文件比tags大多了。 四、使用指南 1)使用下面的命令直接进入main函数定义的地方,如果有多个的话,输入索引号,回车。 mishuang@msh:~/linux/linux0.11/source-0.11> vi -t main 2)将光标停留在一个函数或变量上,"ctrl+]",将直接跳转到定义该函数的地方。 3)将光标停留在一个函数或变量上,"ctrl+\"再输入s,这样就会出现所有调用、定义该函数的地方,输入索引号,回车即可。 4)将光标停留在一个函数或变量上,再输入s,这样就会出现所有调用、定义该函数的地方,输入索引号,回车后会以水平方式在另外一个窗口显示。 5)将光标停留在一个函数或变量上,再输入s,这样就会出现所有调用、定义该函数的地方,输入索引号,回车后会以垂直方式在另外一个窗口显示。 6)ctrl+t回到原来跳转前的地方,连续按两下’’可以再回去。 附: vim分割窗口的操作 :split 水平(上下)分割窗口 :vsplit或者CTRL-W v 垂直(左右)分割窗口 :new 水平分割窗口,创建空文件 :vnew 垂直分割窗口,创建空文件 vim多窗口操作命令 :qall 退出所有窗口 :wall 保存所有窗口 :wqall或者:xall 保存并退出所有窗口 :wqall!或者:xall! 保存并退出所有窗口,如果有的文件只读,不需要先设置写权限 :qall! 强制退出所有窗口 CTRL-W W 在窗口间移动 CTRL-W O 关闭其他所有窗口 参考文献: 1) http://cscope. 2) http://cscope./cscope_vim_tutorial.html 3) ~/.vimrc 4) 对~/.vimrc的改进 |
|
来自: herowuking > 《VIM》