所谓“工欲善其事,必先利其器”,所谓“磨刀不误砍柴工“。在linux下,vim时一种最常见的编辑器,很多linux的发行版就自带了(不过 Ubuntu目前时需要自己安装的,默认只带了vi)。今天搞了半天了Vim,通过几个插件来武装我的vim,使其能向传说中的一样成为C/C++程序员的利器。通过配置和插件,实现的功能有:语法高亮+自动缩进+函数自动补全+变量函数的跟踪+列出源代码中的函数变量等用到的工具有:Vim+.vimrc配置文件+Ctags+taglist使用效果:http://files.myopera.com/mbbill/files/code_complete.gifPS:这个效果非常炫的!~vim 下载地址http://www.vim.org ubuntu可使用sudo apt-get install vimcode_complete.vim 插件http://www.vim.org/scripts/script.php?script_id=1764ctags 一般安装完vim后都会有,ubuntu中好像是不支持,可以通过sudo apt-get install ctags 来安装;也可下载:http://www.vim.org/scripts/script.php?script_id=610taglis 下载: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-color3、设置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 endifPS:自动缩进有两个选项,代码: 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.htmlhttp://www.linuxsir.org/bbs/showthread.php?p=2095747#post2095747 (vim很强大功能介绍)http://linux.chinaunix.net/bbs/thread-1036769-1-1.htmlhttp://blog.chinaunix.net/u/553/showart_288387.html
posted on 2011-08-31 16:51
月下孤影 阅读(220)
评论(0) 编辑 收藏 引用 所属分类:
Linux学习笔记