-
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
中对应行的编码。