在 unix 环境工作难免要碰到 vim. 我倒也经常用 vim 做一些简单的编辑,但是似乎没怎么写过大段的代码。今天有人想用它来写 ruby 的时候,我帮忙去找 ruby 相关的配置,很快发现 vim 本身就带了丰富的完善的 ruby 配置,只是默认没有 enable.
在几个 mac, linux 的系统中,我发现情况都是这样,可能是 vim 为了性能考虑?vim 安装时就带了许多的语法高亮、缩进等定义,分布在安装目录下的 plugin, indent 等目录中。只需要在你的 .vimrc 文件中加上这么一行:
filetype plugin indent on
vim 在打开文件中就会根据文件类型选择不同的缩进方式。试了一下 ruby 的缩进,非常棒。好像很多用户想用 vim 编辑某种语言程序时,都会在网上到处搜该语言的配置文件,拿到一个就 paste 到自己的 .vimrc 中试试,结果折腾半天也不好,遂放弃。
刚刚在 Google Reader 里看到一篇旧文,说 vim 的配置使用自己特定的语法是个硬伤,确实。上面简单的一个命令,如果没有看过一些 vim 的文档,谁也看不出它会起什么作用。许多人尝试 vim 好多次,好多次被吓跑。第一次可能是因为它的 mode 的概念,进去都不知道怎么编辑。第二次可能就是因为不会配置—— vim 的强大就在于它的可定制性,不会定制,就不能用了。
最后再补上几个 .vimrc 中必备的命令:
set nocompatible
syntax on
还有特别为某种文件类型指定 tab 以及缩进的配置,比如 ruby 的风格:
au FileType ruby setlocal expandtab
au FileType ruby setlocal tabstop=2 shiftwidth=2 softtabstop=2
au FileType ruby setlocal cindent
au FileType ruby setlocal smartindent
au FileType ruby setlocal autoindent
老实说,我也是个菜鸟,不过感觉上面这些东西对新手就够了。