随笔 - 6  文章 - 0  trackbacks - 0
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

所谓“工欲善其事,必先利其器”,所谓“磨刀不误砍柴工“。在linux下,vim时一种最常见的编辑器,很多linux的发行版就自带了(不过 Ubuntu目前时需要自己安装的,默认只带了vi)。今天搞了半天了Vim,通过几个插件来武装我的vim,使其能向传说中的一样成为C/C++程序员的利器。
通过配置和插件,实现的功能有:语法高亮+自动缩进+函数自动补全+变量函数的跟踪+列出源代码中的函数变量等
用到的工具有:Vim+.vimrc配置文件+Ctags+taglist
使用效果:http://files.myopera.com/mbbill/files/code_complete.gif
PS:这个效果非常炫的!~

vim 下载地址http://www.vim.org    ubuntu可使用sudo apt-get install vim
code_complete.vim 插件http://www.vim.org/scripts/script.php?script_id=1764
ctags 一般安装完vim后都会有,ubuntu中好像是不支持,可以通过sudo apt-get install ctags 来安装;也可下载:http://www.vim.org/scripts/script.php?script_id=610
taglis 下载:http://www.vim.org/scripts/script.php?script_id=273

一. vim 配置
1、配置文件的位置
  在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名 为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件。我就在自己的$HOME目录下新建了了.vimrc文件来配置的。 (如果设置/etc/vimrc对所有用户都有效配置,某个userHOME下在.vimrc仅对这个user有效)
2、设置语法高亮显示
  1) 打开.vimrc,添加以下语句来使得语法高亮显示:
  syntax on
  2) 如果此时语法还是没有高亮显示,那么在/etc目录下的profile文件中添加以下语句:
  export TERM=xterm-color
3、设置Windows风格的C/C++自动缩进(添加以下set语句到.vimrc中)
  1)不讨论制表符为8还是为4较好,这里设置(软)制表符宽度为4:
  set tabstop=4
  set softtabstop=4
  2)设置缩进的空格数为4
  set shiftwidth=4
  3)设置自动缩进:即每行的缩进值与上一行相等;使用 noautoindent 取消设置:
  set autoindent
  4)设置使用 C/C++ 语言的自动缩进方式:
  set cindent
  5)设置C/C++语言的具体缩进方式(以我的windows风格为例):
  set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s
  6)如果想在左侧显示文本的行号,可以用以下语句:
  set nu
  7)最后,如果没有下列语句,就加上吧:
  if &term=="xterm"
    set t_Co=8
    set t_Sb=^[[4%dm
    set t_Sf=^[[3%dm
  endif
PS:自动缩进有两个选项,代码:
  set autoindent 与  set cindent
  autoindent 就是自动缩进的意思,当你在输入状态用回车键插入一个新行,或者在 normal 状态用 o 或者 O 插入一个新行时,autoindent 会自动地将当前行的缩进拷贝到新行,也就是"自动对齐”,当然了,如果你在新行没有输入任何字符,那么这个缩进将自动删除。
  cindent 就不同了,它会按照 C 语言的语法,自动地调整缩进的长度,比如,当你输入了半条语句然后回车时,缩进会自动增加一个 TABSTOP 值,当你键入了一个右花括号时,会自动减少一个 TABSTOP 值。

二. code_complete 配置
把下载的code_complete.vim拷贝到plugin目录下,一般都在(我的是)/usr/share/vim/vim72/plugin下 (不同的vim版本vim72可能时其他,我的目前时7.2版本)
在vim中使用<tab>键就可以补全函数原型了。具体不全的快捷键的定义,如果in代表#include " ",见:code_complete.vim文件中的定义。

三. 用ctags命令生成tags文件,ctags -R --c-kinds=+p --fields=+S /usr/include 应该算是建立索引表(默认会在当前目录生成tags文件),然后把生成的tags文件拷贝到你编程的目录。
注意:ctags -R 后面不加上绝对路径,就时建立当前目录的下所有文件的索引,那么建立的索引文件中都是写的相对路径,你将tags文件拷贝到其他目录去用时,它就会找不到相应的函数/变量等。
"-R"表示递归创建,也就包括源代码根目录下的所有子目录下的源程序。
"tags"文件中包括这些对象的列表:
  用#define定义的宏
  枚举型变量的值
  函数的定义、原型和声明
  名字空间(namespace)
  类型定义(typedefs)
  变量(包括定义和声明)
  类(class)、结构(struct)、枚举类型(enum)和联合(union)
  类、结构和联合中成员变量或函数
  VIM用这个"tags"文件来定位上面这些做了标记的对象,下面介绍一下定位这些对象的方法:
  1) 用命令行。在运行vim的时候加上"-t"参数,例如:
  [/home/admin/src]$ vim -t foo_bar
  这个命令将打开定义"foo_bar"(变量或函数或其它)的文件,并把光标定位到这一行。
  2) 在vim编辑器内用":ta"命令,例如:
  :ta foo_bar
  3) 最方便的方法是把光标移到变量名或函数名上,然后按下"Ctrl-]"。用"Ctrl-o"退回原来的地方。
  注意:运行vim的时候,必须在"tags"文件所在的目录下运行。否则,运行vim的时候还要用":set tags="命令设定"tags"文件的路径,这样vim才能找到"tags"文件。

四. taglist的配置和使用
下载taglist压缩包,并解压,cp plugin/taglist.vim /usr/share/vim/vim72/plugin/ ; cp doc/taglist.txt /usr/share/vim/vim61/doc/
启动vim,用 “:helptags .”来配置好帮助文件;重启vim,用“:TlistToggle”来打开和关闭taglist窗口;可以用“:help taglist”来获得更多帮助信

参考资料:
http://blog.chinaunix.net/u2/74761/showart_1096872.html
http://www.linuxsir.org/bbs/showthread.php?p=2095747#post2095747    (vim很强大功能介绍)
http://linux.chinaunix.net/bbs/thread-1036769-1-1.html
http://blog.chinaunix.net/u/553/showart_288387.html
posted on 2011-08-31 16:51 月下孤影 阅读(206) 评论(0)  编辑 收藏 引用 所属分类: Linux学习笔记

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理