VIM使用系列之一——配置VIM下C/C++编程环境

本文介绍了如何配置VIM以适应C/C++编程,包括基本配置,安装中文帮助手册,安装C-support插件,集成Exuberant Ctags,Tag List,WinManager,Cscope,A键头文件和源文件切换,code_complete,supertab,snipMate,echofunc,NERD_tree,以及STL库tags。通过这些配置,VIM将拥有强大的代码补全、导航、格式化和编译功能,极大地提升开发效率。
摘要由CSDN通过智能技术生成

作者:gnuhpc from http://blog.csdn.net/gnuhpc
本文环境:ubuntu 9.10

1.基本配置
建立三个目录:mkdir ~/.vim/{plugin,doc,syntax} –p
建立配置文件:touch ~/.vimrc

vimrc作为vim的主要配置文件,我们在配置VIM时首先对它进行基本的设置。打开你home目录下的.vimrc文件。进行如下配置:

"基本配置
set wildmenu
"增强模式中的命令行自动完成操作
set foldmethod=manual
"设定折叠方式为手动
set helplang=cn
"设置帮助的语言为中文
set cin   
"实现C程序的缩进
set sw=4  
"设计(自动) 缩进使用4个空格
set sta   
"插入时使用'shiftwidth'
set backspace=2
"指明在插入模式下可以使用删除光标前面的字符
syntax enable
"设置高亮关键字显示
set nocompatible
"去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限
set number
"显示行号
filetype on
"检测文件的类型
map :q
set history=1000
""记录历史的行数
set background=dark
"背景使用黑色
syntax on
"语法高亮度显示
set autoindent
set smartindent
"上面两行在进行编写代码时,在格式对起上很有用;
"第一行,vim使用自动对起,也就是把当前行的对起格式应用到下一行;
"第二行,依据上面的对起格式,智能的选择对起方式,对于类似C语言编写上很有用
"第一行设置tab键为4个空格,第二行设置当行之间交错时使用4个空格
set tabstop=4
set shiftwidth=4
set showmatch
"设置匹配模式,类似当输入一个左括号时会匹配相应的那个右括号
set ruler
"在编辑过程中,在右下角显示光标位置的状态行
set incsearch
"查询时非常方便,如要查找book单词,当输入到/b时,会自动找到第一
"个b开头的单词,当输入到/bo时,会自动找到第一个bo开头的单词,依
"次类推,进行查找时,使用此设置会快速找到答案,当你找要匹配的单词
"时,别忘记回车。
 set enc=chinese
"设置编码为中文
set winaltkeys=no
"Alt组合键不映射到菜单上
保存文件,退出。

2.安装中文帮助手册
下载地址:http://vimcdoc.sourceforge.net/
安装:
$tar xvf vimcdoc-1.7.0.tar.gz

$ cd vimcdoc-1.7.0/

$ ./vimcdoc.sh –i

然后在~/.vimrc 加上set helplang=cn 这句话表明帮助文档为中文。

3.安装C-support--加速C/Cpp开发
下载地址:http://www.vim.org/scripts/script.php?script_id=213

安装:
将下载的文件放到~/.vim目录中

$ cd ~/.vim

 

$ unzip cvim.zip在.vimrc中添加 filetype plugin on 使能该插件。
使用方法:
1)自动添加文件头:
添加你自己的信息: vim ~/.vim/c-support/templates/Templates
~/.vim/c-support/templates 这个目录下还有许多模板,你可以自己定制。
现在试着vim test.c看一看效果。
2)使用热键
主要是一些模板的插入,种类几乎覆盖C/C++开发中大多数需要手动输入的东西。不过我不是很喜欢它的默认模板的代码风格,不过可以通过上述的目录中的文件去定制。这个功能在后边的code complete插件中也提供了。
另外一部分是编译运行的快捷键。
还有一个把另一个文件内容直接灌入当前文件的功能。
有关使用热键的方法见一个文档:http://lug.fh-swf.de/vim/vim-c/c-hotkeys.pdf
3)编译文件
快捷键:
修改c.vim文件,查找f9,将包含link的那一行注释掉,并且对save and compile 那一行从A-F9修改为F9
       F9     编译
  Ctrl-F9   执行
 Shift-F9   设置命令行参数

4.安装Exuberant Ctags + Tag list + WinManager——分析源码中Tags(function, class, variable, etc) 并且列出—— 在VIM中自由的查看源代码
Exuberant Ctags 下载安装:sudo apt-get install exuberant-ctags
Teh List下载地址:http://www.vim.org/scripts/download_script.php?src_id=7701
安装:解压到home目录下的.vim子目录中。
WinManager(调整窗口布局)下载地址:http://www.vim.org/scripts/script.php?script_id=95
安装:解压到home目录下的.vim子目录中。
配置:
进入$HOME/.vim/doc打开 Vim 运行 ":helptags ." 这个是要保证taglist帮助可以正常使用。其实平时也不太会用到。
生成系统API的tags:(具体为什么采用这样的参数请参考ctags命令行帮助)
ctags -R -f ~/.vim/systags --c-kinds=+p -- c++ - kinds= + px -- fields= + iaS -- extra= + q /usr/include /usr/local/include
随后在vimrc中添加如下几行:

"禁止自动改变当前Vim窗口的大小
let Tlist_Inc_Winwidth=0
"把方法列表放在屏幕的右侧
let Tlist_Use_Right_Window=1
"让当前不被编辑的文件的方法列表自动折叠起来, 这样可以节约一些屏幕空间
let Tlist_File_Fold_Auto_Close=1
"映射F4为功能键调出tages浏览器
"映射F3为功能键调出winmanager的文件浏览器
"let g:winManagerWindowLayout='FileExplorer|TagList' "你要是喜欢这种布局可以注释掉这一行
map :TlistToggle
map :WMToggle
"将当前的工程的tags导入
set tags=./tags
"将系统已经生成的tags导入
set tags+=~/.vim/systags


使用方法:按F4 调出函数、变量等tags,按F3出现文件管理器。 例如:把光标移动到某个元素上,CTRL+],就会跳转到对应的定义

5.安装cscope——升级的Ctags
下载 安装:sudo apt-get install cscope
在vimrc中添加

map :call Do_CsTag()//以后按F12就可以对一个工程进行tags索引建立并且引入了
nmap s :cs find s =expand("")   
nmap g :cs find g =expand("")   
nmap c :cs find c =expand("")   
nmap t :cs find t =expand("")   
nmap e :cs find e =expand("")   
nmap f :cs find f =expand("")   
nmap i :cs find i ^=expand("")$
nmap d :cs find d =expand("")
function Do_CsTag()
    if(executable('cscope') && has("cscope") )
        if(g:iswindows!=1)
            silent! execute "!find . -name '*.h' -o -name '*.c' -o -name '*.cpp' -o -name '*.java' -o -name '*.cs' -o -name '*.cxx' -o -name '*.hxx'> cscope.files"
        else
            silent! execute "!dir /b *.c,*.cpp,*.h,*.java,*.cs >> cscope.files"
        endif
        silent! execute "!cscope -bq"
        if filereadable("cscope.out")
            execute "cs add cscope.out"
        endif
    endif
endf


使用:F12生成这个目录及其子目录的索引,然后将光标指向一些函数名或者变量名,使用Crtl+\+以下字母

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值