在 vi/vim 编辑器中,我需要复制一个块。有很多方法,但一种方法非常快。
以某种方式标记第一行,
然后以某种方式标记结束线,
然后输入一些命令来复制标记的行。
然后复制,可能使用'p',但不确定。
有人知道命令(不是 yy 或 10yy)吗?提前致谢。
在 vi/vim 编辑器中,我需要复制一个块。有很多方法,但一种方法非常快。
以某种方式标记第一行,
然后以某种方式标记结束线,
然后输入一些命令来复制标记的行。
然后复制,可能使用'p',但不确定。
有人知道命令(不是 yy 或 10yy)吗?提前致谢。
只需用于V选择行或v选择字符或Ctrlv选择块。
When the selection spans the area you'd like to copy just hit yand use pto paste it anywhere you like...
剪切和粘贴:
使用相同的步骤执行复制和粘贴,除了步骤 4 中您将按 y 而不是 d:
d= delete
=cut
y= yank
=copy
另一个可能更容易记住的选项是用maand在两行上放置标记mb,然后运行:'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/
听起来您想在文件中放置标记。
mx在光标下放置一个名为x的标记
y'x拉动光标当前位置和包含标记 x的行之间的所有内容。
您可以使用'x简单地将光标移动到您的标记所在的行。
您可以使用`x(反引号)移动到标记的确切位置。
我一直在做的一件事是将光标和标记 x 之间的所有内容拉到剪贴板中。
你可以这样做:
"+y'x
注意:在某些环境中,剪贴板缓冲区由 a*
而不是 a表示+
。
类似的问题有一些很好的答案:
键盘快捷键是:
对于复制:将光标放在块的开头并按md ,然后转到块的末尾并按y'd。这将选择要粘贴的块按 p
对于剪切:将光标放在块的开头并按ma ,然后转到块的末尾并按d'a。这将选择要粘贴的块按 p
您可以像在 vi 中一样执行此操作,例如将行从 3020 拉到末尾,执行以下命令(将块写入文件):
:3020,$ w /tmp/yank
并将此块写入另一行/文件,转到所需位置并执行下一个命令(插入之前写入的文件):
:r /tmp/yank
(提醒:不要忘记删除文件:/tmp/yank)