【问题标题】:Vim copy one line and paste it to multiple lines [closed]Vim复制一行并将其粘贴到多行[关闭]
【发布时间】:2019-01-31 15:15:06
【问题描述】:

我确信我知道该怎么做,但我在不同的机器上尝试过,似乎我不知道。

1 COPY THIS
2
3
4 HERE
5 HERE

这样就变成了

1 COPY THIS
2
3
4 COPY THIS
5 COPY THIS

我尝试过:在第 1 行按 Shift-V 以在可视模式下复制行,然后在第 4 行和第 5 行转到第 4 行可视模式垂直选择。现在 p 进行粘贴。

我希望粘贴到这两行。

会发生什么:它粘贴到第 4 行,第 5 行被删除。

我可以在这里寻求友好的帮助吗?

【问题讨论】:

  • yiw 抽出单词COPYTHIS。然后对第 4 行和第 5 行中的文本进行视觉选择 (Ctrt+V) 并粘贴 p
  • 同样的,它只粘贴一行
  • Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super UserUnix & Linux Stack Exchange 会是一个更好的提问地点。

标签: linux macos vim macvim


【解决方案1】:

您必须粘贴两次:2p 而不是 p

另外,如果你只想复制一行,你可以跳过视线,直接使用yy

要完全消除视觉模式,请执行以下操作:

:0
yy
:4
2dd
2"0p

会做的:

GOTO line 0
copy the current line
GOTO line 4
delete the following two lines (*)
twice: paste line from register 0

(*) 请注意,删除会覆盖默认寄存器中的条目。

另请参阅 Unix.SE 上的 this Q&A

【讨论】:

  • 它有效。但是我认为视觉选择两条线应该有效吗?
  • @KcFnMi 是的,您认为它应该工作是错误的。视觉选择两条线只是意味着:“在这个区域采取行动。”这并不意味着:“经常重复所有事情”
  • @KcFnMi 我很确定您可以想出一个命令,该命令将为可视区域中的每个换行符执行一次命令,但这很奇怪。请记住,视觉区域根本不需要覆盖线条,也可以位于线条上的任何位置。
  • 最后一个问题:假设我用 C-v 复制了一个块,而不是 yy。如果我做 2p,那么它粘贴块 2x,一个接一个,但在同一行。如何在每行粘贴 1x?可能是另一个问题stackoverflow.com/questions/52017570/…
猜你喜欢
  • 2019-01-31
  • 2012-09-24
  • 1970-01-01
  • 2013-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-14
相关资源
最近更新 更多