自序
本书是为那些想提升自己的程序员写的。你一定听说过,对于Vim高手来说,Vim能以思考的速度编辑文本。阅读本书则是通往此途的必经之路。
本书是精通Vim的捷径。尽管它不会手把手教你,不过初学者可以先运行随Vim发布的交互式课程——Vim 向导 来了解必备的知识。本书则在这一基础之上着重介绍核心概念,并为你讲解地道的用法。
Vim是高度可配置的,然而定制是一件很个性化的事情,因此我试图避免建议什么应该放进你的vimrc里什么不应该。相反,本书关注的是Vim编辑器的核心功能。不管你是通过SSH登录远端服务器工作,还是在用本地安装了插件而增添了额外功能的GVim,这些功能都永远在那儿。精通了Vim的核心功能,你就获得了一个可移植的、强大的文本编辑工具。
本书如何组织
这是一本按技巧进行组织的书,它被设计成不必从头读到尾(没错!在下一章开头,我会建议你直接跳到正文)。每一章都是关于某一相关主题的技巧集合,而每个技巧都讲解一个特定的实用功能。有些技巧自成一体,而有些技巧则依赖本书中其他地方的内容,这些有依赖关系的技巧会以交叉引用的形式呈现给大家,因此你可以轻松找到所有内容。
虽然整本书的进度安排不是先从入门开始,然后再到高级,但是每个独立章节中的内容都是按循序渐进的方式来组织的。缺乏经验的读者可能更愿意先浏览全书,只阅读每章的前几个技巧;而资深的读者可能会重点看每章中比较靠后的技巧,或是根据需要查阅本书。
关于示例的说明
在Vim中,对一件给定的任务,总能找到不止一种解决办法。例如,第1章里的所有问题都围绕 . 命令进行设计,以便讲解 . 命令的应用,不过这些问题也都可以用 :substitute命令解决。
在阅读我的解决方法时,你自己也许会想:“难道用这种方法做不是更快吗?”可能你是对的!我的解决方法只是在讲解一种特定的技术,试图透过它们简单的外表,找出它与你日常所面临问题的相似之处,而这一点才是这些技巧可以帮你节省时间的地方。
先学会盲打,然后再学习Vim
如果你要低头看着键盘打字,那学习Vim的好处不会立竿见影地显现出来。要高效地使用Vim,必须学会盲打。
Vim的祖先要追溯到经典的UNIX编辑器vi和ed,参见技巧27中的“Vim(及其家族)的词源”部分,它们比鼠标及所有点击界面出现得都早,因此根本没有这类接口,所有操作都通过键盘完成。Vim 也是一样,在Vim 中所有的操作也都可以通过键盘完成。对盲打人员来说,这意味着用 Vim 做任何事都能更快些。