Vimscript编程指南

前言

编程人员把想法转换成文本。

文本转换成数字,这些数字最后转换成其他数字,最后才使得一切得以实现。

作为编程人员,我们使用文本编辑器把我们头脑中的想法拿出来,转换成一大段的文本,并称之为“程序”。全职的编程人员会花费他生命中成千上万个小时来和他的文本编辑器打交道,在这段时间里,他们主要做一下几件事情:

  • 把原始的文本从大脑里输入到电脑上。
  • 修正文本上的错误。
  • 重新调整文本,通过另外的方式来解决问题。
  • 通过文档来描述为什么一件事是通过某种特殊的方式来实现的。
  • 和其他的编码人员来沟通所有的这些事情。

Vim在处理这些问题上非常强大,但是如果你不能够为你的工作习惯和你的手指来定制它的话,就没法完全发挥它的作用。这本书会给你介绍Vimscript,它是用来定制Vim的主要编程语言。你可以用它来把Vim打造的更加满足你个人的操作习惯,这样你接下来的人生就可以更加高效地使用Vim。

在这过程中,我也会提到一些严格意义上和Vimscript无关的内容,一般会是一些关于学习和如何更加高效的内容。如果你整天都把时间浪费在折腾你的编辑器,而不是工作上,那么Vimscript用的再好是没有任何用处的,你需要在两者之间找到一个平衡点。

这本书和很多其他的编程书籍不一样。除了会告诉你Vimscript如何工作之外,它还会指导你去敲一些命令然后看会是什么样的效果。

这本书里有时候在讲解一个问题的时候,首先会把你带到一个死胡同里,而不是直接告诉你解决问题的“正确”方式。大部分其他的数据都不会这样,顶多只是在告诉你答案之后才告诉你这是个棘手的问题。但是现实的问题往往不是这样的。你经常会很快写一大段Vimscript代码,然后突然就碰到一个很棘手的问题。本书通过这种方式,而不是直接略过这种情况的方式来让你能够熟练掌握Vimscript的一些奇特用法,从而不断突破自己。然后达到熟能生巧。

这本书的每个章节都专注于一个主题。虽然每个章节都很短,但是里面的信息量很大,所以不要只是略过它们。如果你想要充分学习这本书的内容,你就需要亲自敲完每一行命令。也许你已经是一个经验丰富的编程人员,你能够很熟练地阅读代码。即使是这样,也没有问题,相比较学一门平常的编程语言而言,同时学习Vim和Vimscript是一种很不同的体验。

你需要敲完每一行代码

你需要完成所有的练习

我有两个原因要求你完成上面两个要求。第一,Vimscript是一座古老的殿堂,它里面有充满灰尘的角落,也有着曲曲折折的走廊。一个简单地配置甚至可以改变整个语言的工作方式。通过完成每一章的命令和练习,你会很容易发现你的Vim配置里地问题,并且能够很快地去修复。

第二,Vimscript其实就是Vim。在Vim里保存一个文件,你会用到:write(或者是:w)然后回车。通过Vimscript保存文件,你会用write。其实你从本书里所学到的Vimscript命令都是你日常编辑文本都会使用到的,但是只有你把它们都熟练练习起来才会对你有所帮助,而这是没法只通过阅读来进行提高的。

我希望这本书能够对你有所帮助。这本书并不会介绍Vimscript的全部内容。它只会让你学习通过Vimscript这门语言来打磨你的Vim,让它变得更加合适你的胃口,让你能够写一些简单的插件,能够阅读其他人的代码(通过:help命令的帮助),能够避免踩一些常见的坑。

祝您好运!