1. 复制粘贴
在编辑器里,复制、剪切和粘贴都是最平常的操作。在 vi 编辑器有一个注册的概念(concept of
register),正是这个概念使我们可以进行多次的剪切和粘贴操作。在一般的编辑器中我们被限制
只有一个剪切板可以用,而在 vi 中最多时可以有 26 个剪切板可以来使用,这样就会大大的提
高工作的效率。如此强大的功能我们又来如何的操作呢?
在 vi 中,我们可以使用 d 或 x 来删除文本,但是经过这样的操作所删除掉的文本并没有被 vi 所
丢弃,而是被保存起来。我们可以使用 p 命令来粘贴刚刚所删掉的内容。下面来看看他是如何
工作的。首先在 vi 中随意的输入几行,然后移动到其中的一行,用 dd 命令来删掉一行。如何
叫他再回来?我们可以将光标移到任意的地方,然后用 p 命令,就会看到刚才被删除掉的内容
又回来了。
使用 x 命令删除的东西也可以粘贴回来。所不同的是,用 dd 删除一行再用 p 命令时是在当前光
标的下一行粘贴,而删除一个单词再用 p 命令来粘贴时是在当前光标处粘贴。有了这样的命
令,我们就可以来处理输入错误的单词了。例如我们不小心将 the 输入成了 teh,这时可以将光
标移到 e 的位置,用 x 命令删掉,再用 p 命令粘贴回来,这时就会发现输入正是我们想要的
了。
p 命令可以在一个文件中使用几次,每一次都可以将刚删除的内容重新粘贴在所希望的地方。
当然这个命令也可以使用数字做前缀,明确的指出所要执行的次数。
使用标记
在使用 vi 进行编辑时,我们可以对某一行进行标记。将光标移到某一行,用命令 ma 来进行标
记。在这里 m 是标记的命令,a 是对这一行所做标记的名称,当然也可以使用其他的标记名
称,必竟有 26 个字母可以用的。
在做了这样的标记以后,我们可以快速的移到被标记的地方。'a 就可以快速移到刚才所做标记
的地方。这里'是单引号,这时我们就会移到被做标记那一行的行首。也可以使用'a 来移到所做
标记的地方,这里'是反引号,也就是数字键 1 左边的那一个。这时我们就会移到所做标记时光
标所在的位置,可以说是更精确啊。
在进行编辑时,我们可以用:marks 命令列出所有的标记。
如果我们将做了标记的那一行删除,那么所做的标记也就不存了。我们用标记不仅可以快速的
移到做了标记的行,而且还可以用标记来删除掉一行,例如在某一行用 ma 做了标记,然后移
到这一行的底部,这样我们就可以用在 d'a 来删掉这一行。
在 vi 中还有一个命令可以提供复制的操作,那就是 y 命令。yy 命令可以复制一行,然后我们可
以用 p 命令来粘贴。这时我们也可用标记命令来组合使用,首先在一行用 ma 标记此行,然后将
光标移到这一行的底部,用 y'a 命令就可以来复制这一行了。我们也可以使用 Y 命令来复制一
行,或是用数字做前缀来明确的指明复制几行,然后用 p 命令粘贴到我们所希望的地方。
命令小结
p 粘贴
m 做标记
' 移动到标记的行首
' 移动到标记的光标位置