Vim 进阶学习(九)—— 复制与粘贴

220 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第9天,点击查看活动详情

复制、粘贴快捷操作

Vim 的删除、复制与粘贴命令的设计初衷是帮助人们轻松完成日常工作。接下来我们来看看日常工作中的几个常见的例子,并通过复制、粘贴、删除功能快速的解决。

本文的初衷仍然不变,即通过日常工作场景来强化我们的记忆,让我们的一些操作成为本能,进而提升我们的工作效率。

调换字符

在日常工作中,我们经常容易犯的错误就是拼错某些单词久而久之,并且这些拼写错误在所难免,最常见的拼写错误莫过于将两个字符的次序颠倒了,而 Vim 能够轻松修正此类错误。相信我们都有同感,有时空格敲得太快了,导致后面一个字符和空格位置颠倒了,如下:

practic eVim

这个时候我们只需要执行 f 命令,将光标移到要置换的第一个字符上,然后执行 x 命令把光标下的字符剪切下来,把它放到寄存器中。最后,执行 p 命令将寄存器中的内容粘贴到光标后面。

将最后两条命令组合在一起,即 xp,可被用于“调换光标之后的两个字符”。

调换文本行

类似地,我们也能方便地调换两行文本的顺序。这一次,我们不是用 x 命令剪切当前字符,而是用 dd 命令剪切当前行,从而将其内容存入寄存器中。

Line Two
Line One
Line Three

对于上述文本,我们只需要将光标移到第一行,然后执行 dd 命令,然后再执行 p 命令,就可以如愿以偿的将文本上线换行。

p 命令是从寄存器中复制文本,由此我们也可以得知,dd 命令会将文本删除并存入到寄存器中。

总结一下就是:使用 ddp 命令可以“调换当前行和它的下一行”。

创建文本行的副本

另一个例子我们比较常见,就是创建一行新的文本,内容与之前某行类似,只有一两处差异。为此,我们可以先创建一行已有文本的副本,以此作为再加工的模板。要在Vim中实现这一功能,需要我们先复制一行,然后紧接着进行粘贴,这个命令命令就是我们经常使用的 yyp 命令。

请注意 ddp 与 yyp 这两组按键操作的相似之处。前者是对文本行的剪切与粘贴操作,实际上是调换了两行的顺序。后者是针对行的复制与粘贴操作,即创建一行副本。

总结

最后我们对上述三个命令做一下归类总结,即 :

  • xp:调换光标之后的两个字符;
  • ddp:调换当前行和它的下一行;
  • yyp:创建当前行的副本;

希望大家能够熟练掌握并使用。

参考文档

  • 《Vim实用技巧》—— [英]Drew Neil

往期文章