⑴.配置.vimrc文件
⑵当vim在启动时,如果没有找到vimrc或gvimrc,它缺省工作VI兼容的模式。这意味着,你只能使用VI所具备的功能,而vim中的大量扩展功能将无法使用。也许这就是你的vim如此难用的原因。
⑶vim中自带了一个vimrc例子,以我所在的CentOS .上的为例,使用下面的命令找到这个文件
⑷locate vimrc_example.vim
⑸发现它的真实目录在
⑹/usr/share/vim/vim/vimrc_sample.vim
⑺将其拷贝到我的主目录下面
⑻cp -f /usr/share/vim/vim/vimrc_sample.vim ~/.vimrc
⑼或者你在vim中执行下面的命令,和上面的shell命令完成相同的功能:
⑽:!cp $VIMRUNTIME/vimrc_example.vim ~/.vimrc
⑾现在,你退出vim后再进入,你的vim和刚才已经不一样了。
⑿你可以先读一下你的vimrc,看看它都设定了什么:
⒀:e ~/.vimrc
⒁这是一个注释良好的文件,不需要多解释。
⒂在今后使用vim的日子里,你会频繁的更改你的vimrc。所以我们需要设置一些快捷方式,使我们能快速的访问vimrc。
⒃把下面这段内容拷贝到你的vimrc中:
⒄ “Set mapleader
⒅ let mapleader = ”;“
⒆ ”Fast reloading of the .vimrc
⒇ map 《silent》 《leader》ss :source ~/.vimrc《cr》
⒈ “Fast editing of .vimrc
⒉ map 《silent》 《leader》ee :e ~/.vimrc《cr》
⒊ ”When .vimrc is edited, reload it
⒋ autocmd! bufwritepost .vimrc source ~/.vimrc
⒌为了方便解释,我给每一行都加了一个行号。
⒍在vimrc中,双引号开头的行,将被当作注释忽略。
⒎第行,用来设置mapleader变量,当mapleader为未设置或为空时,使用缺省的””来作为mapleader。mapleader变量是作用是什么呢?看下面的介绍。
⒏第行定义了一个映射(map,这个映射把《leader》ss,映射为命令:source ~/.vimrc《cr》。当定义一个映射时,可以使用《leader》前缀。而在映射生效时,vim会把《leader》替换成mapleader变量的值。也就是说,我们这里定义的《leader》ss在使用时就变成了”,ss“,当输入这一快捷方式时,就会source一次~/.vimrc文件(也就是重新执行一遍.vimrc文件。
⒐第行,定义了《leader》ee快捷键,当输入,ee时,会打开~/.vimrc进行编辑。
⒑第行,定义了一个自动命令,每次写入.vimrc后,都会执行这个自动命令,source一次~/.vimrc文件。
⒒有了上面的快捷键,我们就能快速的打开vimrc文件编辑,快速重新source vimrc文件,方便多了。
⒓相关的配置文件参见赵攀提供的.vimrc文件的内容。
⒔注意:最后的源码结构类似如下:
⒕~--|--.vimrc
⒖|--.vim --|-plugin--
⒗|-autoload
⒘.下载一个trafficserver的源码,并以此为例来阐释使用vim开发的方法
⒙登陆...上,并在当前主目录上新建一个program_dev目录
⒚mkdir program_dev
⒛下载完成后,解压缩
①tar jxvf trafficserver-...tar.bz
②注意:使用首先生成种类型的标签,分别是ctags,cscope和lookupfile插件需要用到的标签。
③.生成ctags标签(请参照下一种方法来生成tags并设置
④ctags -R trafficserver-..
⑤将在trafficserver-..同级目录生成一个名为tags的文件
⑥现在进入vim环境,输入以下命令
⑦:cd ~/program_dev/trafficserver-.. “切换到当前源码目录
⑧:set tags=~/program_dev/tags ”设置tags选项为当前目录下的tags文件
⑨注意这里设置tags需要明确写出绝对路径,否则将会导致很多函数找不到。tags文件是个纯文本文件,你可以使用vim打开它看一下。
⑩另外,根据.vimrc中的配置,使用下面的快捷键来分别生成tags文件和cscope文件
Ⅰcd trafficserver-..
Ⅱfind ‘pwd’ -name “*.cpp” -o -name “*.” -o -name “*.c” -o -name “*.h” 》 cscope.files
Ⅲcscope -bqk -i cscope.files
Ⅳctags和cscope会自动区分和处理各自的索引。
Ⅴ这里注意使用cscope的方法,cscope在生成索引文件时,只搜索c,lex和ya的文件(后缀名为.c,.h,.l,.y,要生成c++的文件索引,就得使用上面的方法,先产生一个文件列表cscope.files,然后让cscope为这个列表中的每个文件都生成索引。
Ⅵ将上述内容写成一个脚本make_cscope_ctags_index.sh,其内容如下:
Ⅶ#!/bin/bash
Ⅷfind 。 -name “*.h” -o -name “*.c” -o -name “*.” 》 cscope.files
Ⅸcscope -bkq -i cscope.files
Ⅹctags -R
㈠保存在~/.vim/中,现在将其复制到trafficserver-..下面,并运行下面的命令
㈡/bin/bash make_cscope_ctags_index.sh
㈢命令在trafficserver-..下面生成如下文件
㈣cscope.files
㈤cscope.in.out
㈥cscope.out
㈦cscope.po.out