繁体   English   中英

vi/vim 编辑器,复制一个块(不是通常的操作)

[英]vi/vim editor, copy a block (not usual action)

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

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

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

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

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

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

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

When the selection spans the area you'd like to copy just hit y and use p to paste it anywhere you like...

他们的文档说:

剪切和粘贴:

  1. 将光标定位在要开始切割的位置。
  2. v选择字符(或大写V选择整行)。
  3. 将光标移动到要剪切的内容的末尾。
  4. d进行剪切(或按y进行复制)。
  5. 移动到您要粘贴的位置。
  6. P键粘贴光标之前,或P后进行粘贴。

复制和粘贴使用相同的步骤执行,但步骤 4 中您将按 y 而不是 d:

d = delete = cut

y = yank = copy

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

许多不同的方法来完成这项任务,只是提供另一种。

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

:6,12 co .

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

:6,12t100

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

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

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

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

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

您可以使用` x (反引号)移动到标记的确切位置


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

你可以这样做:

" + y ' x

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


类似的问题有一些很好的答案:

键盘快捷键是:

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

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

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

:3020,$ w /tmp/yank

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

:r /tmp/猛拉

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM