vim 基础:简单的文字编辑 (1)

在上一篇留言里,好几个小伙伴都说

希望我继续写下去,即使(或虽然)不知道我写的是是啥…

在大家的鼓励下,我又回来了。而且,经过一个春节的反思和吃喝之后,我打算把以前的推倒重来。因为这样既可以偷懒的一点点写,也可以把很多让人晕头转向的概念分散开,读起来也容易懂。这样一举两得的事情,我竟然之前没有想到,我也是佩服自己。最终目标,是希望这样一篇篇写来

从没有任何插件开始,一步步到实现 “vim 插件自由” …
(于是,在各种我们要追寻的 “自由” 里,又多了个目标)

作为一同跨进 21 世纪新好青年,你自然是知道怎么找到和安装 vim 的了。如果你打开 vim,你基本上应该看到的是这样的 (没错,现在 vim 已经都 8.0 了)。

二话不说,我们直接按下 : (分号),输入 set nocompatible1,然后回车。之后,开始真正的 vim

奇怪的 vim

在真正开始之前,要先给大家打打气。因为 vim 里很多东西都和平时常用的文字编辑器都不一样,比如

  • 怎么移动光标不一样
  • 怎么删减,粘贴,或移动文字不一样。

唯独一件一样的事情就是怎么输入文字, 就这样你还不一定能顺利的进入输入模式。 是的,输入是有单独的模式的,这个就是 vim 特殊的地方,之后单开一篇说。咱们这一篇背后理论啥都不用讲,就只说上手操作,很多东西说破天都不如上手操作一下。

演示流程

这是一下流程的键盘稿 (transcript)

1
2
3
4
5
6
i
this is a simple demo<esc>
bbdw
yyp
C
simple and easy<esc>

如果你一步一步照着来,那么基本上你看到的就是这样的:

这里,你能感觉到,iC 之后,我们就可以输入了,就连左下角也出现了 “– INSERT –” 的显示。当我们按下 <ESC> 键,就不在输入模式里了。也就是说:

ddbwyyp 都是另一个模式下的操作

我去,是不是吊炸天… 先不说理不理解,记不记得住(很容易记的其实),你想象一下,如果说除了输入本身,你竟然也可以通过这么直接的方式来处理文本,效率自然是乘着火箭往上走。如果使用娴熟,你真的可有做到

Edit Text at the Speed of Thought2

如果中途弄错了,也没关系,退出 vim,再来就是了。等等,你是不是不知道怎么退出?

其实,咱这第一篇就讲一件事:怎么退出。

最重要的一件事: 怎么退出

其实退出挺容易的,一个前提,和一个命令。前提是,左下角没有任何状态显示,比如下面的这些都不要有:

如果你看到了任何一个情况(是的,这些都是不同的模式,咱们之后讲),就(狂)按 <ESC>

之后我们输入一个命令 :q 就能退出了,如果你看到的是这样

那就说明现有的文本,没有保存。如果要强制退出,就输入 :q! 就可以啦。

好啦,从此以后,可就不能开玩笑说你连 vim 怎么退出都不会退了。

2018.2 于多伦多


  1. 1.vi 算是 vim 的前身,大多数情况下我们选择不启用 vi 的功能。
  2. 2.这是V字君公众号的微信号,这也是 Practical Vim 这本书的副标题

VZJ wechat
欢迎您扫一扫上面的二维码,订阅 V 字君的微信公众号。