织梦CMS - 轻松建站从此开始!

罗索

构建vim的可视化C++编辑平台

罗索客 发布于 2010-04-12 17:04 点击:次 
Vim是一个强大的文本编辑器。我们在win32平台下用VC写代码的时候,常常比较习惯VC给予的一些格式控制和代码补全功能,而这些功能都是可以在vim中实现的,并且,已经有前人为我们写好了插件脚本,我们只需要非常简单的设置,就可以迅速的构建出类似VC的C++编译环境。
TAG:

Vim是一个强大的文本编辑器。我们在win32平台下用VC写代码的时候,常常比较习惯VC给予的一些格式控制和代码补全功能,而这些功能都是可以在vim中实现的,并且,已经有前人为我们写好了插件脚本,我们只需要非常简单的设置,就可以迅速的构建出类似VC的C++编译环境。
 

Vim的配置文件通常在~/.vimrc中。我们首先可以加入这样两句:
syntax on            //语法高亮打开,这样我们就可以看倒C/C++的关键字成为了彩色;
:set cin!               //C缩进打开,这样vim会自动判断缩进的设置;
 

完成这样的设置后,当我们创建或者打开vim所能识别的C/C++源文件的时候,我们就可以看到关键字的颜色以及自动的缩进了。
 

需要指出的一点是,按照Unix源程序的习惯,我们最好以ASCII编码来写程序,而Debian的内部编码默认是UTF-8。当然,如果我们vim创建的文件没有汉字等其他字符的时候,产生的文件自动是ASCII编码的,但是,某些插件,比如vim的c-support插件会自动添加文件的创建日期,这样,因为我们系统默认语言一般是zh_CN,所以就会产生中文的日期显示。所以,一个解决方法是在运行创建cpp文件的vim的时候,指定使用的语言,或者,干脆做一个alias来简单使用:
alias cvim='LC_ALL=C vim'
这样,就可以确保创建的cpp文件不带非ASCII字符。
 

接下来,我们简单了解一下ctags。简单说,ctags是为许多计算机语言的源代码文件做索引,以提供给编辑器(比如我们的vim)使用的。我们先看看ctags的帮助:
ctags --help
以下信息是我们将用到的:
-R   Equivalent to --recurse.
--recurse=[yes|no]    Recurse into directories supplied on command line [no].
--languages=[+|-]list
       Restrict files scanned for tags to those mapped to langauges
       specified in the comma-separated 'list'. The list can contain any
       built-in or user-defined language [all].
--fields=[+|-]flags
      Include selected extension fields (flags: "afmikKlnsStz") [fks].
--extra=[+|-]flags
      Include extra tag entries for selected information (flags: "fq").
我们用这样的命令在源文件所在的目录运行:(用样,我们可以做一个alias,我们最后来讨论这个问题)
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q
其中参数的含义是:原文出处
--c++-kinds=+p  : 为C++文件增加函数原型的标签
--fields=+iaS   : 在标签文件中加入继承信息(i)、类成员的访问控制信息(a)、以及函数的指纹(S)
--extra=+q      : 为标签增加类修饰符。注意,如果没有此选项,将不能对类成员补全

好了,现在准备知识讲完了。我们先实现C++对象用.或者->调用方法的时候自动产生选择的下拉菜单。我们需要的插件是OmniCppComplete,在vim官方这里下载:
http://www.vim.org/scripts/script.php?script_id=1520
下载到的是一个压缩包,解压到~/.vim/下相应的目录就可以了。另外,我们需要在~/.vimrc中打开装载插件:
:filetype plugin on
(或许还需要打开vim对源代码的识别,不过我是没有用到,Debian 4.0,如果需要的话,再加上:filetype indent on)
另外,我们关闭vim默认的预览窗口:
:set completeopt=longest,menu
 

这样,当我们创建了对象,用.或者->的时候,就会自动调出类方法的选择窗口了。

另外一个常见的补全是对函数的补全,也有现成的插件可以用code_complete:
http://www.vim.org/scripts/script.php?script_id=1764
这个安装就更简单了,直接把code_complete.vim拷贝到~/.vim/plugin/下面就可以了。
插件的使用方法是,当写完一个函数,并打上左括号(之后,按tab键就可以看倒函数参数列表了,包括重载的函数。
 

最后,我们不希望记那么多参数,希望使用起来简单一些,我们只需要在bash运行的时候申明我们的两个alias就可以了。在~/.bashrc中添加:
alias vctags='ctags -R --c++-kinds=+p --fields=+iaS --extra=+q'
alias cvim='LC_ALL=C vim'
关闭终端后重启动,可以用type查看我们的新命令已经生效了:
lf426@fleet:~$ type vctags
vctags is aliased to `ctags -R --c++-kinds=+p --fields=+iaS --extra=+q'
 

(lf426)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201004/9081.html]
本文出处:C++博客 作者:lf426
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容