你好,游客 登录 注册 搜索
背景:
阅读新闻

在CentOS 6.2上搭建Vim开发环境

[日期:2013-07-15] 来源:Linux社区  作者:tao_627 [字体: ]

CentOS 6.2上搭建vim开发环境
最后更新日期:2013-07-05

推荐阅读:

CentOS 6.3安装spf13-vim http://www.linuxidc.com/Linux/2013-07/86939.htm

Linux Vim快捷键操作命令整理 http://www.linuxidc.com/Linux/2013-05/83737.htm

CentOS安装Vim所依赖包 http://www.linuxidc.com/Linux/2012-09/70281.htm

1.首先使用Ubuntu(所在ip为192.168.16.230)翻墙登陆http://www.vim.org/,下载其上面的vim相关插件到Ubuntu的下载目录下:
cd ~/下载/
http://ctags.sourceforge.net
http://cscope.sourceforge.net/
http://www.vim.org/scripts/script.php?script_id=273
http://www.vim.org/scripts/script.php?script_id=1581
http://www.vim.org/scripts/script.php?script_id=197
http://www.vim.org/scripts/script.php?script_id=95
http://www.vim.org/scripts/script.php?script_id=159
http://www.vim.org/scripts/script.php?script_id=31
http://www.vim.org/scripts/script.php?script_id=2620
http://www.vim.org/scripts/download_script.php?src_id=9679
http://www.vim.org/scripts/script.php?script_id=42
http://www.vim.org/scripts/script.php?script_id=311
使用sftp将这些压缩包上传到目标服务器CentOS 6.2上面
cd /usr/local/src
sftp root@192.168.16.237
ls
put a.vim ***
quit
退出sftp,下面开始安装。

2.在主目录下新建目录,开始安装
mkdir -p  .vim/plugin
mkdir -p .vim/doc
mkdir -p .vim/tags
mkdir -p ~/.vim/syntax


将上述文件包转移到~/.vim/下面,逐个安装插件:
2.1 ctags插件(Exuberant Ctags)
生成tag文件的插件,从如下官网
http://ctags.sourceforge.net
下载到如下源码包ctags-5.8.tar.gz,下面使用源码安装方式
tar zxvf ctags-5.8.tar.gz
cd ctags-5.8
./configure
make
make install
cd ../
发现ctags是个可执行文件,被复制到/usr/local/bin下面了。你可以使用
ctags --help
来查看该执行文件的命令选项。

tags文件是由ctags程序产生的一个索引文件, ctags程序其实叫"Exuberant Ctags", 是Unix上面ctags程序的替代品, 并且比它功能强大, 是大多数Linux发行版上默认的ctags程序.

2.2 taglist插件
这个是浏览源代码的插件,直接将压缩包解压即可自动安装
unzip taglist_46.zip
会在plugin和doc中各生成一个文件taglist.vim和taglist.txt
相应地在我的.vimrc中如下配置:
let Tlist_Show_One_File = 1    "不同时显示多个文件的tag,只显示当前文件的
let Tlist_Exit_OnlyWindow = 1  "如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Use_Right_Window = 0  "在右侧窗口中显示taglist窗口 (默认是0)
注意taglist插件需要tags文件,所以它需要ctags或cscope生成的tags文件。也就是说,这几个插件是紧密联系的。

2.3 Lookup插件
利用插入补全方式在项目中快速查找文件,缓存区,目录的插件,我们从
http://www.vim.org/scripts/scipt.php?script_id=1581
下载源码包lookupfile-1.8.zip进行安装
unzip lookupfile-1.8.zip
将在doc,plugin,autoload目录下分别生成lookupfile.txt,lookupfile.vim和lookupfile.vim
注意autoload目录是自动生成的。

Lookupfile插件还需最新的genutils插件支持,否则你打开vim时会有警告:
lookupfile: You need a newer version of genutils.vim plugin
从下面的地址下载
http://www.vim.org/scripts/script.php?script_id=197
得到genutils-2.5.zip,下面直接解压就可自动安装好
unzip genutils-2.5.zip
发现它在autoload和plugin目录中都放入了文件genutils.vim

Lookupfile在查找文件时,需要使用tags文件,它可以使用ctags命令生成的tag文件,不过效率比较低,我们专门给它生成了一个包含项目中所有文件名的tag文件。下面是具体步骤:

我编写了下面的shell脚本make_lookupfile_tag.sh,为trafficserver-3.2.4的源代码,生成一个文件名tag文件。

#!/bin/bash
# generate tag file for lookupfile plugin
echo -e "!_TAG_FILE_SORTED\t2\t/2=foldcase/" > filenametags
find . -not -regex '.*\.\(png\|gif\)' -type f -printf "%f\t%p\t1\n" | \
    sort -f >> filenametags
回想一下我们在”使用标签(tag)文件“一文中介绍的tag文件的格式。再对照脚本命令来看:


echo命令用来生成filenametags文件中的”!_TAG_FILE_SORTED”行,表明此tag文件是经过排序的。
find命令用来查找所有类型为普通文件,文件后缀名不是.png和.gif的文件,找到的文件按”文件名\t文件路径\t1″的格式输出出来。
sort命令则把find命令的输出重新排序,然后写入filenametags文件中
在~/program_dev/trafficserver-3.2.4/目录下运行该脚本,
chmod +x make_lookupfile_tag.sh
/bin/bash make_lookupfile_tag.sh
会生成一个名为filenametags的文件,包含了trafficserver-3.2.4目录下的所有文件的名字及其所在目录,你可以打开该文件查看并验证。


现在我们需要让lookupfile插件知道到哪去找文件名tag文件。我们假定vim当前工作目录为~/program_dev/trafficserver-3.2.4/,执行下面的命令:
:let g:LookupFile_TagExpr = '"./filenametags"'
注:如果不设定g:LookupFile_TagExpr的值,那么lookupfile插件会以tags选项定义的文件作为它的tag文件。
当恢复前次会话时,就给lookupfile插件定义了tag文件。


现在我们就可以使用lookupfile来打开文件了,按”<F5>“或输入”:LookupFile“在当前窗口上方打开一个lookupfile小窗口,开始输入文件名(至少4个字符),随着你的输入,符合条件的文件就列在下拉列表中了。文件名可以使用vim的正则表达式,这大大方便了文件的查找。你可以用”CTRL-N“和”CTRL-P“(或者用上、下光标键)来在下拉列表中选择你所需的文件。选中文件后,按回车,就可以在之前的窗口中打开此文件。

2.4 cscope插件
标签跳转插件,从下面的网址下载
http://cscope.sourceforge.net/
得到源码包cscope-15.8a.tar.gz,下面进行源码包安装:
tar zxvf cscope-15.8a.tar.gz
cd cscope-15.8a
ll
./configure
make
make install
cd ../
注意使用下面的命令查看到
which cscope
可执行文件所在路径是/usr/local/bin/cscope
cscope的用法很简单,首先需要在你的工程目录,比如trafficserver-3.2.4下面生成一个cscope数据库,也就是一个索引文件。cscope只在第一次解析时扫描全部文件,以后再调用cscope时,它只扫描那些改动过的文件,这大大提高了cscope生成索引的速度。

2.5 BufExplore插件
缓冲区文件浏览插件,从下面的地址下载
http://vim.sourceforge.net/scripts/script.php?script_id=42
直接解压即可自动安装
unzip bufexplorer-7.3.6.zip
将在doc和plugin目录下分别安装bufexplorer.txt和bufexplorer.vim文件。

2.6 winmager插件
该插件控制各插件在vim窗口中的布局显示,从下面的地址下载
http://vim.sourceforge.net/scripts/script.php?script_id=95
得到winmanager.zip文件。
unzip winmanager.zip
把该文件在~/.vim/目录中解压缩,这会将如下文件解压到~/.vim/plugin和~/.vim/doc目录中:
plugin/winmanager.vim – winmanager插件
plugin/winfileexplorer.vim  - 改良的Explorer插件
plugin/wintagexplorer.vim – winmanager提供的tag插件,用处不大
doc/winmanager.txt – 帮助文件

注意:winmanager插件需要与BufExplorer插件一起才能使用

2.7 直接是*.vim的插件
这样的插件目前有
a.vim,            //将.h文件与.c文件来回切换
minbufexpl.vim    //快速浏览和操作Buffer,自如切换
直接复制到~/.vim/plugin/下面就可以了

2.8 vim自带插件
QuickFix            编译纠错,显示查询结果窗口
new-omni-completion  全能补全

2.9 NeoComplCache插件
自动补全插件,下载地址:
http://www.vim.org/scripts/script.php?script_id=2620
将下载下来的压缩包neocomplcache-8.0.zip使用如下命令解压
unzip neocomplcache-8.0.zip
其解压后文件夹里面的文件,好像是四个,autoload、doc、plugin、vest、README.MD,会自动放到.vim相应的文件夹下面。
在~/.vimrc文件里加入自动启动的命令:
let g:neocomplcache_enable_at_startup = 1。

2.10 查看插件自带的文档
注意到上面各步骤中已经把插件自带的文档放入$HOME/.vim/doc目录下了,现在
进入vim,输入命令:helptags $HOME/.vim/doc,vim就会自动读取$HOME/.vim/doc目录下的文档,
输入:help local-additions即可跳转到$HOME/.vim/doc中的所有文档列表处,用选择要看的文档即可。
我们可以看到,当前我们已经安装的插件有taglist,lookupfile,bufexplorer,winmanager插件等。

2.11 安装vim中文帮助文档
vim中文文档的主页是:
http://vimcdoc.sourceforge.net/
它将vim的help文件翻译成为中文,已经支持目前最新的vim 7.3。
如果想使用vim中文文档(.cnx文件),可以遵循以下步骤:
cd ~/.vim/
$wget http://nchc.dl.sourceforge.net/sourceforge/vimcdoc/vimcdoc-1.8.0.tar.gz(注意这不是真实的地址,仅作示例)
tar zxvf vimcdoc-1.8.0.tar.gz
ll
cd vimcdoc-1.8.0
sudo ./vimcdoc.sh -i
cd ../
将会将这些文档安装在/usr/share/vim/,/usr/share/doc等几个目录下面。
启动vim,输入:help,看看帮助文档是否已经便成中文了?

2.12 grep插件
工程中正则查找插件,从下面的地址下载
http://www.vim.org/scripts/script.php?script_id=311
将得到的grep.vim直接放到~/.vim/plugin/下面就可以了。

一些注意事项:
1)vim中文文档不会覆盖原英文文档,安装后vim默认使用中文文档。若想使用英文文档,可在vim中执行以下��令:
:set helplang=en
同理,使用以下命令可重新使用中文文档:
:set helplang=cn
2)使用以下命令可以卸载vim中文文档:
sudo ./vimcdoc.sh -u
3)帮助文件的文本是utf-8编码的, 如果想用vim直接查看, 需要在~/.vimrc中设置:
:set encoding=utf-8

2.12语法高亮
普通一些的要求是更改色彩方案,设置如下:
首先要在你的 ~/.vimrc 文件中增加下面几句话:
syntax enable
syntax on
选中你喜欢的配色方案,在.vimrc文件中做设置,比如
colorscheme desert

更个性化的需求
让运算符号, 各种括号, 函数名, 自定义类型等也高亮起来
对各种语言的源文件(比如c,c++,php,python等)新建一个语法文件,分别存放到
/usr/share/vim/vim72/syntax/c.vim
下面,以C语言为例,新建一个文件~/.vim/syntax/c.vim
加入以下内容
"========================================================
" Highlight All Function
"========================================================
syn match  cFunction "/<[a-zA-Z_][a-zA-Z_0-9]*/>[^()]*)("me=e-2
syn match  cFunction "/<[a-zA-Z_][a-zA-Z_0-9]*/>/s*("me=e-1
hi cFunction        gui=NONE guifg=#B5A1FF


"========================================================
" Highlight All Math Operator
"========================================================
" C math operators
syn match      cMathOperator    display "[-+/*/%=]"
" C pointer operators
syn match      cPointerOperator  display "->/|/."
" C logical  operators - boolean results
syn match      cLogicalOperator  display "[!<>]=/="
syn match      cLogicalOperator  display "=="
" C bit operators
syn match      cBinaryOperator  display "/(&/||/|/^/|<</|>>/)=/="
syn match      cBinaryOperator  display "/~"
syn match      cBinaryOperatorError display "/~="
" More C logical operators - highlight in preference to binary
syn match      cLogicalOperator  display "&&/|||"
syn match      cLogicalOperatorError display "/(&&/|||/)="


" Math Operator
hi cMathOperator            guifg=#3EFFE2
hi cPointerOperator        guifg=#3EFFE2
hi cLogicalOperator        guifg=#3EFFE2
hi cBinaryOperator          guifg=#3EFFE2
hi cBinaryOperatorError    guifg=#3EFFE2
hi cLogicalOperator        guifg=#3EFFE2
hi cLogicalOperatorError    guifg=#3EFFE2


再打开你的C文件看看, 是不是又明亮了许多. 还有一个压箱底的要告诉你, 如果你自己增加了一个类型或者结构之类的, 怎么让它也象"int", "void"这样高亮起来呢? 再在上面的文件~/.vim/syntax/c.vim中添加下面的东东:
"========================================================
" My Own DataType
"========================================================
syn keyword cType      My_Type_1 My_Type_2 My_Type_3
这样你自己的类型My_Type_1, My_Type_2, My_Type_3就也可以向"int"一样高亮起来了, 这样的缺点是每增加一个类型, 就要手动在这里添加一下, 如果有人知道更简单的方法请一定一定要告诉我

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款