在linux下编程一直都是用QT和vim,小工程只有三两个文件时,用vim尤为方便,但是之前用vim都是没有安装插件,所以编程效率比较低,自从在网上看了《手把手教你把Vim改装成一个IDE编程环境(图文)》这篇博文之后(博文地址:http://blog.csdn.net/wooin/article/details/1858917),我也决定参考这篇文章好好的配置一下我的vim编程环境。
环境:ubuntu10.10,这里安装相关插件没有用apt-get install命令,而是采用传统的编译源码方式安装,这样更能明白原理。
配置目标:实现语法高亮;安装ctags插件;安装TagList插件;安装winManager插件;安装MiniBufExplorer插件;安装a.vim插件。
配置后的结果截图:
说明:vim源码编译后,被安装到(参看下面“安装vim”)目录: /usr/local/share/vim下。vim的配置文件在安装目录下,名为vimrc(没有则自己创建),这个配置文件对所有用户都生效;如果只想对某个用户使用的vim做单独配置,在在此用户的家目录下添加配置文件:.vimrc(无则自己创建,注意这是一个隐藏文件)。我的用户名为:panbin,我以下相关vimrc的配置全部添加到/home/panbin/.vimrc文件中,这些配置只对panbin这个用户生效。
我的vimrc配置文件在:
http://blog.csdn.net/panbin0054/article/details/7188581
配置过程:
(一)安装vim
从www.vim.org下载vim,这里下载的是当前最新版(vim-7.3.tar.bz2),下载后将其解压,进入vim73/src目录,执行以下命令(如果不能执行,则切换值root):
$make
$make install
这样便根据其中Makefile文件的设置将vim安装到相应的目录,如果希望将vim安装到特定的目录,则在此目录中的Makefile文件中修改prefix的值为你想安装的目录名。在命令行执行$vim,如果出现vim介绍即说明此时已经安装好vim。
(二)实现语法高亮
在~/.vimrc文件中添加以下语句:
syntax enable
syntax on
(三)安装ctags插件
ctags插件功能大概是实现函数的调用和定义之间跳转,当光标在某个函数(如fun函数)调用处时,按ctrl+],光标便跳转到fun函数的定义处,此时按ctrl+r,光标又退回到fun函数的调用处。
到http://ctags.sourceforge.net/下载ctags插件,我下的是当前最新版(ctags-5.8.tar.gz)。解压并进入ctags-5.8目录,执行以下命令(如果不能执行,则切换值root):
$./configure
$make
$make install
打开~/.vimrc文件,在其中添加一句,注意后面有“;”号,这句的意思是当打开vim时,它会在先在当前目录中找相应的tags文件:
set tags=tags;
此时便安装好了ctags插件,ctags插件的使用简单介绍如下:
比如你有一个工程目录(名为project),此时进入project目录,在终端命令行执行:
$ctags -R
这个命令生成了ctags插件需要用到的相应tags文件。然后用vim打开你的源代码,便可以使用ctags插件的功能。更多ctags功能和使用介绍请到网上搜索。
(四)安装TagList插件
TagList插件可以将当前文件中的所有宏,全局变量,函数等都显示在symbol窗口,用鼠标点击这些tag,便可以跳转到相应的定义处,这类似与windows系统中的source Insight的功能。
到http://www.vim.org/scripts/script.php?script_id=273下载taglist插件,我下的是当前最新版(taglist_45.zip)。解压,把解压得到的两个文件夹(doc和plugin)放到~/.vim/目录中,此时便安装好taglist插件,然后在~/.vimrc文件中添加以下语句:
let Tlist_Ctags_Cmd='/usr/bin/ctags'
let Tlist_Auto_Open=1 "当打开vim时自动使用taglist插件,不需要则可以不设置,只需在vim中输入:Tlist便可打开
let Tlist_Show_One_File=1 "只显示当前文件的tag
let Tlist_Exit_OnlyWindow=1 "如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Use_Left_Window=1 "在左侧显示taglist窗口
此时用vim打开代码文件,便可以出现taglist插件的功能。
(五)安装WinManager插件
vim自带了netrw.vim插件,其作用是:当用vim命令打开目录时,会显示目录中的所有子目录名和文件名,或者在vim打开的某个文件中输入:e flodername,也有相同结果。WinManager插件有个功能是可以管理这些插件布局,我这里是用来管理netrw.vim插件和TagList插件,让两个插件同时显示在左边,一个在左上方一个在左下方。
到http://www.vim.org/scripts/script.php?script_id=95下载WinManager插件,我下的是当前最新版(2.3),解压,将产生一个doc目录和plugin目录,把doc目录中的文件复制到~/.vim/doc中,把plugin目录中的文件全复制到~/.vim/plugin中,现在已经安装好WinManager插件,可以在vim中输入:help winmanager查看更多的帮助。下面是配置此插件的相关操作:
在~/.vimrc文件中添加下面内容,作用是设置布局格式和打开/关闭这个格式的按键(w+m):
let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle<cr>
在~/.vimrc文件中添加下面内容,作用是每次用vim打开文件都会自动调用WinManager设置好的布局。:
let g:AutoOpenWinManager = 1
在~/.vim/plugin/winmanager.vim文件中添加以下内容:
"set auto open Winmanager
if g:AutoOpenWinManager
autocmd VimEnter * nested call s:StartWindowsManager()|1wincmd w
endif
(六)安装MiniBufExplorer插件
当用命令:vim a.c b.c c.c一次打开3个c文件时,即有3个buffer,此时用MiniBufExplorer来管理这些buf会很方便,MiniBufExplorer提供一个窗口可以显示一共打开几个buf,当前编辑的buf和buf间的切换。
到http://www.vim.org/scripts/script.php?script_id=159下载MiniBufExplorer,我下的是当前最新版(6.3.2),将下载到的文件(minibufexpl.vim)复制到~/.vim/plugin目录中,重启vim便可以看到MiniBufExplorer提供的效果了。同时在~/.vimrc中添加以下一句,实现可以用ctrl+方向键实现各个窗口间的切换:
let g:miniBufExplMapWindowNavArrows=1
(七)安装a.vim插件
a.vim插件提供的功能是:当打开一个.c(.h)文件时,按下面的键会打开对应的.h(.c)文件(如果存在),
A:在新buffer中切换到c/h文件
AS:横向分割窗口并打开c/h文件
AV:纵向分割窗口并打开c/h文件
AT:新建一个标签并打开c/h文件
到http://www.vim.org/scripts/script.php?script_id=31下载,我下的是当前最新版(2.18),将下载来的a.vim复制到~/.vim/plugin/目录中,即完成安装。
在~/.vimrc文件中添加如下一句,作用是使用F12按键来切换c/h文件:
nnoremap <silent><F12> :A<CR>
vim的配置先到这里,感觉暂时已经可以满足我了,不过还有一个就是关于代码补全的问题,这里没有找到合适的插件,上面博客上提到的补全插件需要每定义一个新结构都要更新tags文件,对这个还不是很满意,所以先不去配置这个东西。感谢http://blog.csdn.net/wooin/article/details/1858917精彩的博文!