注:以下所有说明针对ubuntu10.04平台。
1. vimrc基本配置
1.1. 配置文件的位置
在目录 /etc/下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件。
1.2. 设置语法高亮显示
(1)打开vimrc,添加以下语句来使得语法高亮显示:
syntax on
(2)如果此时语法还是没有高亮显示,那么在/etc目录下的profile文件中添加以下语句:
export TERM=xterm-color
(3)设置Windows风格的C/C++自动缩进(添加以下set语句到vimrc中)
-
不讨论制表符为8还是为4较好,这里设置(软)制表符宽度为4:
set tabstop=4
set softtabstop=4
-
设置缩进的空格数为4
set shiftwidth=4
-
设置自动缩进:即每行的缩进值与上一行相等;使用noautoindent 取消设置:
set autoindent
-
设置使用 C/C++语言的自动缩进方式
set cindent
-
设置C/C++语言的具体缩进方式(以我的windows风格为例):
setcinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s
-
如果想在左侧显示文本的行号,可以用以下语句:
set nu
-
最后,如果没有下列语句,就加上吧:
if &term=="xterm"
sett_Co=8
sett_Sb=^[[4%dm
sett_Sf=^[[3%dm
endif
PS:
自动缩进有两个选项:
代码:
setautoindent
setcindent
autoindent就是自动缩进的意思,当你在输入状态用回车键插入一个新行,或者在normal 状态用 o或者 O 插入一个新行时,autoindent会自动地将当前行的缩进拷贝到新行,也就是"自动对齐”,当然了,如果你在新行没有输入任何字符,那么这个缩进将自动删除。
cindent就不同了,它会按照 C语言的语法,自动地调整缩进的长度,比如,当你输入了半条语句然后回车时,缩进会自动增加一个TABSTOP 值,当你键入了一个右花括号时,会自动减少一个TABSTOP 值。
1.3.括号自动补全
在/etc/vim/vimrc中添加如下代码:
:inoremap( ()<ESC>i
:inoremap) <c-r>=ClosePair(')')<CR>
:inoremap{ {}<ESC>i
:inoremap} <c-r>=ClosePair('}')<CR>
:inoremap[ []<ESC>i
:inoremap] <c-r>=ClosePair(']')<CR>
:inoremap' ''<ESC>i
:inoremap" ""<ESC>i
functionClosePair(char)
ifgetline('.')[col('.') - 1] == a:char
return"/<Right>"
else
returna:char
endif
endf
2. ctags插件安装
tar –xzvf ctags-5.6.tar.gz
cdctag-5.6
./configure
make
makeinstall
安装完成后,在你的源程序文件夹下试试看看是否可以用了,进入本地源程序文件夹输入ctags-R,即可生成tags文件,在vim中执行命令:
settags+=$Program/tags
可以通过<C-]>进入函数定义而<C-T>返回函数使用了。
3. taglist插件安装
unzip–d taglist taglist_42.zip
cdtaglist
将taglist目录下的taglist.txt文件拷贝到/usr/share/vim/vim72/doc目录下;
将taglist目录下的taglist.vim文件拷贝到/usr/share/vim/vim72/plugin目录下。
vim/usr/share/vim/vim72/plugin/taglist.vim
在if!exists(“loaded_taglist”)的前一行,加上一句:
letTlist_Ctags_Cmd=”/usr/local/bin/ctags”
至此,打开cpp文件,输入变量,再按ctrl+ p就可以有自动补全的功能了。
还可以根据需要对taglist进行定制,
vim/usr/share/vim/vim72/plugin/taglist.vim
letTlist_Auto_Open=1
启动vim自动打开Tlist
letTlist_File_Fold_Auto_Close=1
当同时显示多个文件中的tag时,可使taglist只显示当前文件tag,其它文件的tag都被折叠起来。
4. code_complete插件安装
下载code_complete插件,将其拷贝到/usr/share/vim/vim72/plugin/目录下。
5. tabbar.vim插件安装
下载tabbar.vim插件,将其拷贝到/usr/share/vim/vim72/plugin/目录下。
spfile.xxx
注意:在打开新文件时,光标一定要处在主编辑界面中,这样才能保证标签的位置的位置合适。
关闭标签页使用:bdfile.xxx
6. a.vim插件安装
下载tabbar.vim插件,将其拷贝到/usr/share/vim/vim72/plugin/目录下。
E.g.if you are editing foo.c and need to edit foo.h simply execute :A andyou will be editting foo.h, to switch back to foo.c execute :A again.
7. ShowFuncc.vim插件安装
下载ShowFuncc.vim插件,将其拷贝到/usr/share/vim/vim72/plugin/目录下。
这个插件实现了按下fd,就可以提示当前光标所在函数的定义,另外还实现了当输入'('时,会自动匹配tags,展示函数的定义原型。
8. omni插件安装
参考~/.vim/doc/omnicppcomplete.txt
-
按照omni插件
下载omnicppcomplete-0[1].41.zip,执行如下命令:
unzip–n omnicppcomplete-0[1].41.zip –d ~/.vim
将该文件解压到~/.vim文件夹下,有after、autoload、doc三个文件夹。
-
生成tags文件
-
方法1
在当前原文件所在目录下执行
ctags–R –c++-kinds=+p –fields=+iaS –extra=+q .(注意:最后有个.)
-
方法2
每次都执行这个长的命令有些麻烦,可以这样设置:
touch~/.ctags
打开.ctags文件vim~/.ctags,添加如下三行命令i:
--c++-kinds=+p
--fields=+iaS
--extra=+q
在源文件所在的目录下执行
貌似直接用ctags–R命令也可以。
在VIM中执行
!ctags–R .命令即可。(注意:最后有个点)
-
设置vimrc
设置/etc/vim/vimrc
setnocp
filetypeplugin on
settags+=./tags
letOmniCpp_DefaultNamespaces=[“std”]
letOmniCpp_GlobalScopeSearch=1
letOmniCpp_NamespaceSearch=1
letOmniCpp_DisplayMode=1
letOmniCpp_ShowScopeAbbr=0
letOmniCpp_ShowPrototypeInAbbr=1
letOmniCpp_ShowAccess=1
letOmniCpp_MayCompleteDot=1
letOmniCpp_MayCompleteArrow=1
letOmniCpp_MayCompleteScope=1
setomnifunc=complete#Complete
setcompleteopt=longest,menu
9. WinManager插件安装
(1) 在当前用户下生效
下载winmanager.zip,执行如下命令:
unzip–n winmanager.zip –d ~/.vim
打开一个.cpp文件,在VIM命令模式下输入WMToggle展开文件夹,输入Tlist打开taglist列表。
使用ctrl加两个w键,将光标跳转到文件浏览,在光标选中的源文件按回车键,会在编辑窗口打开标签。
在当前文件夹下,创建新文件时,winmanager并不会自动更新,需要利用ctrl+w将光标转移到文件浏览器窗口(FileExplorer),按F5键后,会进行刷新。
vim/etc/vim/vimrc
letg:winManagerWindowLayout=”FileExplorer,Taglist”
在VIM只显示文fileexplorer和taglist,即只有文件夹中的文件和taglist,也可以设置成:
letg:winManagerWindowLayout=” BufExplorer,FileExplorer,Taglist”
在VIM中同时会显示缓冲区文件,即在文件浏览器中会显示.swp文件。
letg:winManagerWidth=30
letg:defaultExplorer=0
10. C语言相关符号高亮显示
vim/usr/share/vim/vim72/syntax/c.vim
(1)函数高亮显示
syn match cFunctions display"[a-zA-Z_]/{-1,}/s/{-0,}(/{1}"ms=s,me=e-1
hi def link cFunctions Type
(2)指针符号高亮显示
syn match cPointer display "*"
hi def link cPointerConditional
(3)指针操作符高亮显示
syn match cPointerOperatordisplay "->/|/."
hi def link cPointerOperatorConditional
(4)逻辑运算符高亮显示
syn match cLogicalOperatordisplay "[!<>]=/="
syn match cLogicalOperatordisplay "=="
hi def link cLogicalOperatorConditional
(5)位运算符高亮显示
syn match cBinaryOperatordisplay "/(&/||/|/^/|<</|>>/)=/="
syn match cBinaryOperatordisplay "/~"
hi def link cBinaryOperatorConditional
(6)逻辑运算赋高亮显示
syn match cLogicalOperatordisplay "/&& /| ||"
hi def link cLogicalOperatroConditional
11. Doxygen
11.1. DoxygenToolkit设置
下载DoxygenToolkit.vim到/usr/share/vim/vim72/plugin目录中。
将doxygenToolkit.vim中的
“ let s:licenseTag = “ Copyright © /<enter>/<enter>”的注释去掉。
在/etc/vim/vimrc中添加
letg:doxygenToolkit_authorName="siceaner@gmail.com"
let s:licenseTag="Copyright(C) 2010 CheJiang University EE/<enter>"
lets:licenseTag=s:licenseTag."All rights reserved"
letg:DoxygenToolkit_licenseTag=s:licenseTag
letg:doxygenToolkit_briefTag_funcName="yes"
letg:DoxygenToolkit_enhanced_color=1
这样,就可以这样,你就可以通过DoxAuthor,DoxLic,Dox,Doxb等几个命令来生成文件、函数等常用的注释,完成doxygen风格的文档了。
11.2. Doxygen设置
安装Doxygen生成注释文档。
(1)安装doxygen
sudo apt-get install doxygendoxygen-doc doxygen-gui graphviz
(2)生成配置文件
在程序所在目录下执行doxygen-g生成doxygen配置文件
(3)生成注释文档
在配置文件所在目录下,执行doxygen配置文件名,生成注释文档。
12. 快捷键设置
vim/etc/vim/vimrc
nmap<F8> :Tlist
nmap<F9> :WMToggle
nmapdoxq :DoxAuthor
nmapdoxw :DoxLic
nmapdoxe :Dox
nmapdoxr :DoxBlock