-
vim版本为7.3以上
-
ctags、cscope已经安装(开发机一般都已经装了)
相关软件最新版下载地址:
编译vim时建议
./configure --with-features=huge将全部功能包含进来。如果是自家电脑,直接
apt-get或yum安装即可。
下载 install_vimrc.tgz,解压并执行目录中的Install.sh。
执行完毕后,即安装完成。你的旧vim配置被打包备份在~/oldvim中,同时你的.bashrc会被增加一行内容,为了安全起见,旧的.bashrc也在一起打包在备份文件中。
安装完后,需要source ~/.bashrc,这样下文中提到的shell命令retag和genmake才能使用。
此处主要介绍本vim配置文件提供的功能,vim自带功能不着重介绍。
直接执行retag命令。
如果是第一次使用,在shell下执行retag命令(或在 vim 中按下 [Ctrl + T])后会提示类似这样的信息:
Directory list empty, please add paths to /root/tags/directory.txt
Edit now? [Y/N]
按下 Y 后会自动跳到路径列表编辑,这里可以添加我们需要建立查找索引的代码路径:
~/Code/nginx-1.10.0/
这样所有在该目录下的代码文件就全部被创建了索引,索引文件在~/tags/tags。
如果需要引入其他路径,只需要在 ~/tags/directory.txt 文件中再增加一行。
另外,如果想暂时关闭对其中某个路径的引用,可以在该行路径前加#来暂时排除掉它。
#/usr/local/apache2/cgi-bin
/usr/local/lib/python2.7
/usr/lib/python2.7
~/Code/nginx-1.10.0/
由于 tags 支持 python,所以 python 语言的代码也是可以成功索引的。
如果代码被修改,则需要重新索引建立索引,此时还是调用retag命令(或在 vim 中按下 [Ctrl + T])。
此时我们打开文件一个文件查看:
vim ngx_http_header_filter_module.c
这里用到了一些快捷键,用快捷键之前先按ESC切换到命令模式:
- 跳转进入光标下符号:
Ctrl + ] - 后退:
Ctrl + o - 前进:
Ctrl + i
这里用到的快捷键会稍复杂一些,大家操作时按顺序按,确保在命令模式下,依次按下:
[ESC]
... (移动光标到你要高亮或取消高亮的词)
Ctrl + \
m
以上高亮效果是全字匹配的,如果你需要非全字匹配的,可以在命令模式下输入:
:Mark header_
至于全字匹配,也可以用输入命令的方式,例如:
:MarkOneWord pos
这样会全字匹配高亮pos。
如果要不区分大小写,可以用vim中的大小写开关来控制:
:set ic
:set noic
上面分别为设置区分大小写和设置不区分大小写(ic = ignore case)。
按下[F8]后,窗口左侧会展示函数列表窗口:
按快捷键 ctrl + w或 ctrl + h 可切到该函数列表窗口。
光标移动到该窗口的某个函数、符号名上,按下[ENTER],则会在右侧窗口中自动跳转到该函数、符号的定义处。
注:
ctrl + w为 vim原生窗口切换快捷键,多次按下会在多个窗口间来回切换。
ctrl + h为配置文件定义的向左切换窗口,同时还有:ctrl + l向右切换窗口、ctrl + h向上切换窗口、ctrl + j向下切换窗口。
本配置中集成的代码补全插件为Omnicppcomplete,效果如下:
这里的补全是基于tags的,所以如果补全出不来,请确定把路径添加到了~/tags/directory.txt,并调用retag。
此处用到的快捷键:
[Ctrl + n] 下一处补全
[Ctrl + p] 前一处补全
vim本身有自带对make的整合,对于使用make进行编译的项目,可以直接在vim的命令模式下输入:
:make
这样效果等同于在shell下执行make命令,但vim会解析make的输出,然后我们可以按下[F9]、[F10]跳到下一处错误、前一处错误(若有warning也会跳到该处),这里的跳转是可以跨文件的,尽管示例中只使用了一个文件。
注:
这里的
[F9]、[F10]为配置文件定义的快捷键,在无配置文件的vim下可使用:cn、:cp跳转。
如果对这样的查看方式不满意,还可以使用:copen打开查看窗口,并在该窗口内查找对应的错误。有些项目中有大量warning,如果只想看error可以在查看窗口中搜索error:,然后在对应行按下[ENTER]即可快速跳到错误点。
" Linux下使用这段配置
set fileencodings=utf-8,cp936,gb18030,big5,gb2312
" 此处要与secureCRT的terminal设置一致
set termencoding=utf-8
" 此处决定以什么编码格式保存文件
set encoding=utf-8
以上为配置文件.vimrc中默认对编码的设定,默认的termencoding及encoding都是utf-8。
即你的SecureCRT设置的终端编码为utf-8,并且编辑后保存的文件编码也为utf-8。
如果有需要,请自己修改.vimrc中对应行的编码。





