时间:2015-03-18 17:30:03 作者:qipeng 来源:系统之家 1. 扫描二维码随时看资讯 2. 请使用手机浏览器访问: https://m.xitongzhijia.net/xtjc/20150318/41885.html 手机查看 评论 反馈
3.配置.vimrc文件
当vim在启动时,如果没有找到vimrc或gvimrc,它缺省工作VI兼容的模式。这意味着,你只能使用VI所具备的功能,而vim中的大量扩展功能将无法使用。也许这就是你的vim如此难用的原因。
vim中自带了一个vimrc例子,以我所在的CentOS 6.2上的为例,使用下面的命令找到这个文件
locate vimrc_example.vim
发现它的真实目录在
/usr/share/vim/vim72/vimrc_sample.vim
将其拷贝到我的主目录下面
cp -f /usr/share/vim/vim72/vimrc_sample.vim ~/.vimrc
或者你在vim中执行下面的命令,和上面的shell命令完成相同的功能:
:!cp $VIMRUNTIME/vimrc_example.vim ~/.vimrc
现在,你退出vim后再进入,你的vim和刚才已经不一样了。
你可以先读一下你的vimrc,看看它都设定了什么:
:e ~/.vimrc
这是一个注释良好的文件,不需要多解释。
在今后使用vim的日子里,你会频繁的更改你的vimrc。所以我们需要设置一些快捷方式,使我们能快速的访问vimrc。
把下面这段内容拷贝到你的vimrc中:
1 “Set mapleader
2 let mapleader = ”;“
3
4 ”Fast reloading of the .vimrc
5 map 《silent》 《leader》ss :source ~/.vimrc《cr》
6 “Fast editing of .vimrc
7 map 《silent》 《leader》ee :e ~/.vimrc《cr》
8 ”When .vimrc is edited, reload it
9 autocmd! bufwritepost .vimrc source ~/.vimrc
为了方便解释,我给每一行都加了一个行号。
在vimrc中,双引号开头的行,将被当作注释忽略。
第2行,用来设置mapleader变量,当mapleader为未设置或为空时,使用缺省的”\”来作为mapleader。mapleader变量是作用是什么呢?看下面的介绍。
第5行定义了一个映射(map),这个映射把《leader》ss,映射为命令:source ~/.vimrc《cr》。当定义一个映射时,可以使用《leader》前缀。而在映射生效时,vim会把《leader》替换成mapleader变量的值。也就是说,我们这里定义的《leader》ss在使用时就变成了”,ss“,当输入这一快捷方式时,就会source一次~/.vimrc文件(也就是重新执行一遍.vimrc文件)。
第7行,定义了《leader》ee快捷键,当输入,ee时,会打开~/.vimrc进行编辑。
第9行,定义了一个自动命令,每次写入.vimrc后,都会执行这个自动命令,source一次~/.vimrc文件。
有了上面的快捷键,我们就能快速的打开vimrc文件编辑,快速重新source vimrc文件,方便多了。
相关的配置文件参见赵攀提供的.vimrc文件的内容。
注意:最后的源码结构类似如下:
~--|--.vimrc
|--.vim --|-plugin--
|-doc--
|-autoload
|-vest
4.实战体验
4.1下载一个trafficserver的源码,并以此为例来阐释使用vim开发的方法
登陆192.168.16.237上,并在当前主目录上新建一个program_dev目录
ssh root@192.168.16.237
cd ~/
mkdir program_dev
wget https://mirror.esocc.com/apache/trafficserver/trafficserver-3.2.4.tar.bz2
下载完成后,解压缩
tar jxvf trafficserver-3.2.4.tar.bz2
ll
注意:使用首先生成3种类型的标签,分别是ctags,cscope和lookupfile插件需要用到的标签。
4.2生成ctags标签(请参照下一种方法来生成tags并设置)
ctags -R trafficserver-3.2.4
将在trafficserver-3.2.4同级目录生成一个名为tags的文件
现在进入vim环境,输入以下命令
:cd ~/program_dev/trafficserver-3.2.4 “切换到当前源码目录
:set tags=~/program_dev/tags ”设置tags选项为当前目录下的tags文件
注意这里设置tags需要明确写出绝对路径,否则将会导致很多函数找不到。tags文件是个纯文本文件,你可以使用vim打开它看一下。
另外,根据.vimrc中的配置,使用下面的快捷键来分别生成tags文件和cscope文件
cd trafficserver-3.2.4
find ‘pwd’ -name “*.cpp” -o -name “*.cc” -o -name “*.c” -o -name “*.h” 》 cscope.files
cscope -bqk -i cscope.files
ctags和cscope会自动区分和处理各自的索引。
这里注意使用cscope的方法,cscope在生成索引文件时,只搜索c,lex和yacc的文件(后缀名为.c,.h,.l,.y),要生成c++的文件索引,就得使用上面的方法,先产生一个文件列表cscope.files,然后让cscope为这个列表中的每个文件都生成索引。
将上述内容写成一个脚本make_cscope_ctags_index.sh,其内容如下:
#!/bin/bash
find 。 -name “*.h” -o -name “*.c” -o -name “*.cc” 》 cscope.files
cscope -bkq -i cscope.files
ctags -R
保存在~/.vim/中,现在将其复制到trafficserver-3.2.4下面,并运行下面的命令
/bin/bash make_cscope_ctags_index.sh
命令在trafficserver-3.2.4下面生成如下文件
cscope.files
cscope.in.out
cscope.out
cscope.po.out
tags
发表评论
共0条
评论就这些咯,让大家也知道你的独特见解
立即评论以上留言仅代表用户个人观点,不代表系统之家立场