术语约定:如果没有特殊说明,本文中提到的 VIM 指的是图形界面的 gvim 与字符界面的 vim 的统称,gvim 专指图形界面,vim 专指字符界面。

1 让 gvim 正常工作

VIM 是一个非常强大的编辑器,可惜的是,无论是 Windows 还是 Linux,gvim 都存在一些小故障,令第一眼看到它的初学者感到非常不愉快。为了不让更多的初学者在第一次接触 gvim 时被它吓跑,我在这份教程中首先解决 gvim 令人感到不快的一些小问题,希望能让更多的用户平滑地过渡到 gvim 的环境中来。

VIM 的安装很简单,Windows 下只要双击安装程序,一路 next 下去就可以了(注意到选择安装组件的时候请选择全部组件,默认安装方式下会少装几个有用的小东西)。Linux 下各个发行版安装方式都不一样,但总体来说都不难装。因此,本文假设你已经成功地安装了一份 VIM,不再介绍 VIM 的安装步骤。如果你用的是 Ubuntu Precise 并且搭配了 IBus 输入法的话,可能会遇到些不愉快的事情,可以参考这篇文章

1.1 屏蔽系统自带的 .vimrc

VIM 是一个高度可定制的编辑器,它通过配置文件 .vimrc (Windows 下是 _vimrc)来定制程序的各种行为。如果你没有编写 .vimrc 的话,它会使用系统自带的一份默认配置文件。可惜的是,系统默认的配置文件存在种种很令人不快的问题。例如 Windows 下加载 mswin.vim 带来的困惑,和 Linux 下无法处理中文等等故障。因此,我们在安装了 VIM 之后,第一件要做的事情就是创建自己的 .vimrc。只要编写一份你自己的配置文件,VIM 便不会再加载系统自带的配置文件。

如果你是 Linux 用户,请在你的 $HOME 目录下放置一个空文件,文件名叫 .vimrc,方法如下:

$ cd                            # 使用不带参数的 cd 命令,切换到 $HOME 目录
$ touch .vimrc                  # 使用 touch 命令创建一个空白文件

如果你是 Windows 用户,请在你的 %HOME% 目录下放置一个空文件,文件名叫 _vimrc。步骤如下:

  1. 在资源管理器中切换到 %HOME% 目录;
  2. 右键单击文件列表的空白位置, 选择“新建”→“文本文件”;
  3. 将“新建文本文件.txt”重命名为“_vimrc”, 注意显示扩展名的问题。

现在,我们已经创建了一份自己的 .vimrc。在之后的部分里,我们将逐渐往 .vimrc 里添加一些属于我们自己的内容,得到一份真正属于自己的配置。

1.2 该节已删除 (原“Linux 下的中文处理”)

之前在默认 zh_CN.GB18030 的 Linux 发行版下,旧版本的 GVim 有 bug,无法正常处理中文,需要进行一些配置。而现在绝大部分 Linux 发行版都默认 UTF-8,而 GVim 的 bug 也修复了,因此这一节不再有存在的必要了。如果你的 Linux 是 zh_CN.GB18030 且你的 Vim 有那个 bug,你应该考虑的是升级系统,而不是解决这个问题。

1.3 选择自己喜欢的字体

如果觉得 gvim 的字体显示效果不好的话,不妨重新选择一个你喜欢的字体。点“编辑”→“选择字体”,然后在字体列表中选择一个你最中意的字体和字号,确认后就可以了。由于 gvim 只能使用等宽字体,因此对话框中列出的字体可能比你系统里安装的字体要少得多,请慢慢选择,耐心选,直到选出最满意的字体为止。选择完毕后,先按几下 ESC 确认处在 Normal 模式下,然后输入这条命令:“:set guifont?”(这里的问号代表询问,不要漏写),回车后 gvim 屏幕最下方会显示出你当前所用的字体的名称,例如在滇狐这里输入这条命令后出来的结果如下:

  guifont=Bitstream Vera Sans Mono 9

请记住这里输出的字体名称,如果必要的话请先暂时把它写下来备用,之后我们需要将它写入配置文件。

1.4 设置多语言编码自动识别

完成上述配置之后,VIM 应该已经很适合“人类使用”了。试着通过菜单或工具栏打开几个文本文件试验一下,如果不出什么意外的话,你也许会发现,打开的绝大部分文本文件中,中文都是乱码。是的,我们还没有配置多语言编码的自动识别。确认当前输入法处于英文输入状态,按若干下 ESC 以确保 VIM 处在 Normal 状态,接着输入以下命令:

:set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

回车后再打开几个文本文件试试,应该已经没有乱码出现了。关于这句命令的详细原理,可以参考这篇文章

1.5 将配置写入 .vimrc

之前我们通过一系列命令,将 gvim 调整为一个比较适合我们使用的编辑环境。然而,gvim 是不会自动记住我们这次所做的调整的。下次再打开 gvim 时,它又变回了原先的模样。如果我们能够把刚才所输入的命令记录下来,下次再打开 gvim 的时候把那些命令再执行一遍,不就可以让 gvim 每次都保持我们调整过的最佳工作状态了么?对,这就是配置文件 .vimrc 的作用。

刚才我们已经创建了一个全空的配置文件 .vimrc,现在我们往配置文件中写下我们的自己的配置代码。.vimrc 的格式很简单,只要将刚才输入的所有冒号开头的命令,依次写入 .vimrc 即可,写到配置文件里的时候就不要写冒号了。VIM 启动的时候会依次执行这些命令。另外,配置文件中双引号开头的行表示注释,在 VIM 读入 .vimrc 的时候,这些行不会被执行。因此你可以使用注释在 .vimrc 中写上一些说明文字,为自己将来阅读配置文件提供方便。再次复习一下前几节的内容,然后写下自己的 .vimrc,你现在的 .vimrc 可能是这个样子的:

set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

" 设置字体。
" 字体名称可以通过前一节介绍的语句获得,
" 如果字体名称中含有空格,
" 需要在空格前面加上一个反斜杠,如下:

" 这是 Linux 风格的字体设置语法
set guifont=Bitstream\ Vera\ Sans\ Mono\ 9
" 这是 Windows 风格的字体设置语法
set guifont=Bitstream_Vera_Sans_Mono:h9:cANSI

提示:如果对 VIM 的基本操作一无所知的话,现在你可以不妨先使用其它文本编辑器编写 .vimrc,如记事本等。当然,如果你愿意现在就尝试着使用 gvim 编辑这个文件的话,也是非常值得鼓励的。

2 入门学习

2.1 vimtutor

vimtutor 是一个非常适合初学者学习 VIM 的简易教程。教程中说阅读一遍这个教程需要 25 到 30 分钟,其实很少有人需要这么长时间。一般情况下,如果精力集中的话,15 到 20 分钟足以将这份教程从头到尾阅读一遍。每天花 15 分钟时间将这份教程从头到尾看一遍,平时进行纯文本编辑的时候,尽量“逼迫”自己多使用 gvim,花一周时间,就可以比较熟悉 gvim,能够用它完成普通的编辑工作了。

Linux 下的 vimtutor 是在终端中打开的,如果终端字体配置正常,一般情况下不会出现什么太大问题。Windows 下的 vimtutor 会弹出一个 gvim 窗口,大部分情况下也没有什么大问题,在少部分机器上汉字会出现乱码。如果 vimtutor 在你机器上显示不正常的话,请先输入“:set encoding=cp936”,回车,然后再点击“编辑”→“选择字体”,选择一个支持中文的字体,如“新宋体”等,确认后,教程的显示应该就恢复正常了。

如果你以前从来没有使用过 VIM 的话,请先花 15 分钟时间阅读一遍 vimtutor,然后再继续往后阅读滇狐教程。之后的部分再出现 vimtutor 里介绍过的术语时,滇狐将不再作解释。

注意:为了保证 vimtutor 在任何机器上运行效果都相同,不会被本地设置的键绑定所干扰,vimtutor 运行时不会读取任何用户自定义的配置文件 .vimrc。因此如果你之前做的设置在 vimtutor 里没有效果的话,请不要太过于惊慌。

2.2 VIM 快速编辑示例

学习 VIM 其实是一件比较辛苦的事情,刚开始的时候可能比用记事本还慢。因此,在学会 VIM 之前,我们有必要先通过一些例子坚定一下信心。

VIM 的一大特点就是“快”。这里列举了一些使用 VIM 能够快速完成,而一些其它编辑器难以胜任的功能,体现 VIM 的优越性。

3 编写自己的 .vimrc

作为一个高度可定制的编辑器,为 VIM 编写适合自己使用的 .vimrc 是有必要的。这里给出了一个适合初学者使用的 .vimrc 框架,以及每一项设置的详细解释,希望能给大家带来一些帮助。

这里是滇狐自己的 .vimrc,里面有很多根据滇狐自己的习惯所做的设置。如果你希望在自己机器上使用的话,需要根据你的习惯做一些修改。

3.1 滇狐的 VIM 入门教程

vimtutor 虽然非常简单,但涵盖的内容太过于有限;用户手册虽然内容非常全面,但如此巨大的一个大部头,任何一个刚接触 VIM 的人都会被它吓到。针对这个问题,滇狐编写了一份 VIM 入门教程,希望能给大家带来一些入门上的便利。

4 VIM 进阶

通过一个星期的努力,把 vimtutor 中的基本命令都熟练掌握后,使用 VIM 进行简单快速的编辑应该已经没有什么问题了。接下来,可以每天抽出半个小时时间,在半个月左右内把 VIM 用户手册大概阅读一遍。在 VIM 中 Normal 模式下输入“:help usr_toc”即可看到用户手册,如果更习惯看中文版的话,可以到这里下载。

记住,没有必要记住手册中的所有命令,只要大概知道有哪些命令,需要用的之后知道到哪一章去查就可以了。常用的命令查过几次之后自然而然就能够记住,不常用的命令记下来也没有什么意义。

另外,可以根据自己的需要,下载一些常用的 VIM 插件,方便自己的日常生活与工作。这里有滇狐整理的 VIM 常用插件推荐,感兴趣的话可以看看。

如果对 VIM 还有更加浓厚的兴趣的话,可以试着自己编写 VIM 插件,不过那些内容就不是这篇文章能够涉及的了。祝大家好运!Happy VIMming~

标签:VIM 入门 教程