转自:
http://blog.163.com/sunshine_linting/blog/static/4489332320116234512574/
1.安装vim。然后在/etc/vim/vimrc中做一些修改,将原来注释掉的一些配置打开(即删除双引号),添加一些功能的设置。
打开语法高亮显示
:syntax on
当重新打开文件时,自动跳转当上次结束编辑的位置
if has("autocmd")
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
\| exe "normal g'\"" | endif
endif
vim的使用网上有"vim-handbook-cn-71.pdf"的中文使用书,翻译地非常好,可以用它来学习vim。vim的功能还是非常强大的。
2.在Synaptic Package Manager中安装cscope的包。
然后敲入下面的命令:
mkdir ~/.vim
mkdir ~/.vim/plugin
然后从 下载cscope_maps.vim文件,并将其copy到~/.vim/plugin目录下。
然后就ok了。
使用前在代码的目录下敲入 cscope -Rb,然后用vim看代码就可以使用cscope的功能了。
3.举个例子:看linux 内核的 init/main.c文件的do_basic_setup()函数的定义。
ning@ubuntu:~$ cd kernel/linux-2.6.26/init/
ning@ubuntu:~/kernel/linux-2.6.26/init$ cscope -Rb
ning@ubuntu:~/kernel/linux-2.6.26/init$ vim main.c
在vim中将光标移到 do_basic_setup()语句上 ,敲入s (敲入ctrl+\的组合键 然后再敲s),下面提示出两个cscope的tag,敲入1,就跳转到了do_basic_setup()的函数定义处。
如果要返回到刚才的位置,再敲入Ctrl-t就可以了。
4.刚才演示的只是cscope的一个功能,其他的功能如下:
cscope的用法 :cs find {querytype} {name}
{querytype} 为下面的命令字
0 或 s: 查找该C语言符号
1 或 g: 查找定义
2 或 d: 查找本函数调用的函数
3 或 c: 查找调用指定函数的函数
4 或 t: 查找字符串
6 或 e: 查找 egrep 模式
7 或 f: 查找文件
8 或 i: 查找包含指定文件的文件
这些都是命令行的命令,敲起来太慢,在刚才我们配置的cscope_maps.vim,定义了这些命令的键盘快捷键,刚才演示的s (敲入ctrl+\的组合键 然后再敲s)组合,即实现查找C语言符号的命令,就定义在下面的第一行。你也可以自己修改,定制自己的快捷键。
nmap s :cs find s =expand("")
nmap g :cs find g =expand("")
nmap c :cs find c =expand("")
nmap t :cs find t =expand("")
nmap e :cs find e =expand("")
nmap f :cs find f =expand("")
nmap i :cs find i ^=expand("")$
nmap d :cs find d =expand("")
5.vim Help文件(中文):
强烈建议VIM的初学者,主要是害怕读英文Help文件的朋友阅读!翻译的非常好,在此感谢译者ZhaoRuFei。
vimdoc项目的主页在: ,有时间可以去看看
vim主页:
这个网站不用介绍了吧。
vim资源收集:
linux forum上的一个网友收集的vim资源,相当不错。
cscope主页:
cscope的主页,程序员的利器。
cscope与vim入门:
使用cscope管理大软件项目:
vim实用技术:一、二、三
IBM developerWork上的文章,初学者可以一看。
vim group:
google上的vim group,不过人气还不是很旺。
6.
Cscope安装
可以在下载源码包,然后解压,编译安装。
./configure
make
make install
生成Cscope数据库
使用cscope前,必须为代码生成一个cscope数据库。假设当前代码在/usr/src/linux目录下,则运行下列命令。
cd /usr/src/linux
cscope –Rbq
然后会生成3个文件:cscope.in.out,cscope.out,cscope.po.out。
用vim打开代码文件,将刚才生成的cscope文件导入到vim中。
vim init/main.c
:cs add /usr/src/linux/cscope.out /usr/src/linux
也可以将下面语句添加到vim的配置文件.vimrc中。
if fileradable("cscope.out") cs add csope.out elseif $CSCOPE_DB != "" cs add $CSCOPE_DB endif
Cscope的功能
Cscope的功能通过它的子命令“find”来实现。
cs find c|d|e|g|f|i|s|t name
-
s:查找C代码符号
-
g:查找本定义
-
d:查找本函数调用的函数
-
c:查找调用本函数的函数
-
t:查找本字符串
-
e:查找本egrep模式
-
f:查找本文件
-
i:查找包含本文件的文件
可以在.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>
使用时,将光标停留在要查找的对象上,按下g,即先按“Ctrl+@”,然后很快再按“g”,将会查找该对象的定义。
阅读(4598) | 评论(0) | 转发(0) |