红联Linux门户
Linux帮助

逐步设置vim C/C++语法高亮显示和自动缩进

发布时间:2007-10-01 00:15:20来源:红联作者:kwareregb
  Vim(Vi Improved) 是一个类似于vi 的文本编辑器,在Vi的基础上增加了很多新的特性和功能。Vim以其强大的功能和可定制能力,成为Linux/Unix环境下开源的最重要的编辑器之一(另一个是 Emacs),被众多开发者所喜爱。笔者此时所用的是最新的7.1版本。

  与大部分其它编辑器不同,进入 Vim 后,缺省状态下键入的字符并不会插入到所编辑的文件之中。Vim 的模式(mode,可以简单地理解为“状态”)概念非常重要。需要知道,Vim 有以下几个模式:

  1) 正常(normal)模式,缺省的编辑模式;下面如果不加特殊说明,提到的命令都直接在正常模式下输入;任何其它模式中都可以通过键盘上的 Esc 键回到正常模式。

  2) 命令(command)模式,用于执行较长、较复杂的命令;在正常模式下输入“:”(一般命令)、“/”(正向搜索)或“?”(反向搜索)即可进入该模式;命令模式下的命令要输入回车键(Enter)才算完成。

  3) 插入(insert)模式,输入文本时使用;在正常模式下键入“i”(insert)或“a”(append)即可进入插入模式(也有另外一些命令,如“c”,也可以进入插入模式,但这些命令有其它的作用)。

  4) 可视(visual)模式,用于选定文本块;可以在正常模式下输入“v”(小写)来按字符选定,输入“V”(大写)来按行选定,或输入“Ctrl-V”来按方块选定。

  5) 选择(select)模式,与普通的 Windows 编辑器较为接近的选择文本块的方式;在以可视模式和选择模式之一选定文本块之后,可以使用“Ctrl-G”切换到另一模式----该模式很少在 Linux 上使用,本文中就不再介绍了。

  设置vim语法高亮显示和自动缩进

  一、、首先,确认你的linux系统是否安装了功能完整的且足够新的vim。比如你用的是RedHat(Fedora),请确定安装了vim-enhance的rpm包。以下命令将对你有所帮助。

  查看系统中已经安装的vim组件(后三行为示例输出,已经安装了完整的vim):
  # rpm -qa|grep vim
  vim-enhanced-7.1.12-1.fc7
  vim-common-7.1.12-1.fc7
  vim-minimal-7.0.235-1.fc7

  安装vim-enhanced:
  # yum install vim-enhanced

  二、接下来设置vim的配置文件

  1、配置文件的位置
  在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件。

  2、设置语法高亮显示
  1) 打开vimrc,添加以下语句来使得语法高亮显示:
  syntax on

  2) 如果此时语法还是没有高亮显示,那么在/etc目录下的profile文件中添加以下语句:
  export TERM=xterm-color

  3、设置Windows风格的C/C++自动缩进(添加以下set语句到vimrc中)

  1)设置(软)制表符宽度为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

  试试看吧,有问题再讨论。
文章评论

共有 1 条评论

  1. Linux85fan 于 2007-10-01 16:32:26发表:

    不错不错,真实用啊,没想到vim里边还有语法高亮显示啊,这太好了。还有自动缩进,这以后主跟windows下的编程差不多了啊。顶,。。。楼主有空再介绍些啊。