超强文本编辑器Vi/Vim的配置与使用

  • Shuwei Zhang & Jinhai ZHOU
  • 3 Minutes
  • 2017年5月21日

目录

为什么要学习Vim

Vi或者Vim(Vi加强版)是众多Linux发行版中终端环境自带的文本编辑器,但似乎熟练掌握Vi/Vi不是在Linux上进行软件开发活动的必要条件。因为在Linux上开发软件的过程中,我们总是能找到更便于上手的,学习曲线更平缓的替代工具,比如gedit,sublime或者atom。然而在某些情况下,掌握Vi/Vim却显得十分的必要,比如需要远程链接到一台上个世纪的古董服务器上修改几行配置代码时,使用Vi/Vim进行编辑几乎是你的唯一选择,毕竟Vi诞生于1976年,比Linux的第一个版本发行时还要早17年,此外Vi/Vim可以直接运行在终端环境中,而gedit,sublime或者atom却需要在桌面环境的支持下才能运行。

在刚进入公司实习时,培训材料中就有如何使用Vim以及如何用Vundle配置Vim的教程。但是其实我发现公司里用的最多的文本编辑器不是Vim,而是Atom。这样的现象,我个人觉得还是由于Vim的学习曲线些陡峭造成的。毕竟Vim不如gedit,sublime或者atom般开箱即用(out of the box),新手并不能指望在半个小时内掌握它,用它进行简单的编辑操作。此外,插件管理也不如sumblim或者atom般显而易见。我记得在实习第一周培训时,我自己就用了一天时间来配置Vim,给Vim安装Airline,NERDTree,Fugitive等等插件,来让Vim看起来更像一个桌面环境下的文本编辑器。实际上,公司里还是有人在使用Vim的,通常他们的编程水平都很高,完全不用鼠标,也很少从终端中切换出来,除非他们在搞全栈开发,需要时不时的在浏览器中测试下代码。

有人说Vi/Vim是人类历史上最好用的文本编辑器,虽然我不知道此话的出处是哪里,暂且认同此话,如果能熟练掌握人类历史上最好用的文本编辑器,那自己作为程序员的逼格也会是相当的高,在众多的文本编辑器中,Vi/Vim应该是最符合Geek的。

学习Vim的正确姿势

如果你有心,在Google里搜索Vim学习指南,我相信会有不少的学习笔记,或者类似于《X分钟/小时内掌握人类历史上最好用的文本编辑器》的文章。相信我,后面那种类型的文章还是不要看了,除非是vimtutor的翻译,后面我会提到。其实我很同意陈皓在《简明 VIM 练级攻略》中把学习Vim喻为学习钢琴,学习Vim不是30分钟的事情,而是需要几个星期去不断练习的。实际上,大多数Linux发行版除了自带Vi/Vim编辑器外,也内置了Vi/Vim的教程,在终端中输入vimtutor你就可以进入一个交互式的Vim学习教程中,该教程一共有7节,从hjkl光标移动,到编辑vimrc脚本均有涉及。默认的vimtutor是英文版的,网上也有很好的翻译版本,比如《30分钟学会vim之vimtutor(双语版)》

Vi/Vim编辑器的内置了的Vi/Vim教程

配置Vim的省时办法

之前我有提到在实习第一周培训时,我自己就用了一天时间来配置Vim,给Vim安装Airline,NERDTree,Fugitive等等插件。Vim有一个非常好的插件管理工具Vundle,安装完Vundle后,我们可以根据自己的喜好来管理,安装Vim插件来对Vim进行配置。其实直到今天我才发现了配置Vim更简单的方法,那就是用Vim发行版spf13。spf13是一个跨平台的Vim发行版,可以在Windows,Linux和Mac平台上运行。简单来说,spf13就是帮你写好了vimrc文件,在Vim中执行PluginInstall命令后,所有在vimrc里设置好的插件就会依次安装。

安装完spf13-vim发行版后的vimrc配置文件

Vim插件使用

spf13集成了超多的Vim插件,比如用于显示文件目录结构的NERDTree,方便文件查找的ctrlp,集成语法检查Syntastic,Git集成的Fugitive等等。先在这里占个坑,接下来会写每个插件的使用方法