vi编辑器,复制块(不是通常的动作)

时间:2012-11-19 02:59:59

标签: vim copy-paste vi

在vi编辑器中,我需要复制一个块。有很多方法,但有一种方法很快。

  1. 以某种方式标记第一行,

  2. 然后以某种方式标记结束行,

  3. 然后输入一些命令来复制带标记的行。

  4. 然后复制,可能使用'p',但不确定。

  5. 有人知道命令(不是yy或10yy)吗?提前致谢。

7 个答案:

答案 0 :(得分:76)

只需使用 V 选择行或 v 选择字符或 Ctrl v 选择一个块。

当选择范围跨越您想复制的区域时,只需点击 y 并使用 p 将其粘贴到您喜欢的任何地方......

答案 1 :(得分:41)

<强> Their Documentation says:

剪切和粘贴:

  1. 将光标定位在您要开始剪切的位置。
  2. v 选择字符(或大写 V 以选择整行)。
  3. 将光标移动到要剪切的末尾。
  4. d 剪切(或 y 复制)。
  5. 转到您要粘贴的位置。
  6. P 在光标前粘贴,或 p 粘贴后。
  7. 使用相同的步骤执行复制和粘贴,但步骤4除外,您将按y而不是d:

    d = delete = cut

    y = yank = copy

答案 2 :(得分:30)

另一个可能更容易记住的选项是在 m a m b的两行上放置标记,然后运行:'a,'byank

完成此任务的许多不同方法,只提供另一种方法。

答案 3 :(得分:15)

听起来你想在文件中放置标记

m x 在光标下放置一个名为 x 的标记

y ' x 猛拉光标当前位置和包含标记x 的行之间的所有内容。

您可以使用' x 将光标移动到带有标记的行。

您可以使用` x (后退)来移动到商标的确切位置


我一直在做的一件事是将光标和标记x之间的所有内容放入剪贴板

你可以这样做:

+ ý ' X

注意:在某些环境中,剪贴板缓冲区由*代替,而不是+


类似的问题和一些好的答案:

答案 4 :(得分:4)

键盘快捷键是:

  1. 复制:将光标放在块的开头并按 md ,然后转到块的结尾并按 y'd 。这将选择要粘贴的块按p

  2. 对于剪切:将光标放在块的开头并按 ma ,然后转到块的结尾并按 d'a 。这将选择要粘贴的块按p

答案 5 :(得分:4)

我发现下面的命令更加方便。如果要复制6到12行,并从当前光标位置粘贴。

:6,12 co .

如果要复制6到12行并从第100行粘贴。

:6,12t100

来源:https://www.reddit.com/r/vim/comments/8i6vbd/efficient_ways_of_copying_few_lines/

答案 6 :(得分:1)

您可以像在vi中那样执行此操作,例如从3020到结尾抽取行,执行此命令(将块写入文件):

:3020,$ w / tmp / yank

要在另一行/文件中写入此块,转到所需位置并执行下一个命令(插入之前写入的文件):

:r / tmp / yank

(提醒:不要忘记删除文件:/ tmp / yank)