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

Yan*_*ang 52 vi vim copy-paste

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

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

  2. 然后通过某种方式标记终点线,

  3. 然后放一些命令来复制标记的行.

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

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

And*_*ler 94

只是V用来选择行或v选择字符或Ctrlv选择一个块.

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

  • 在Windows PC上,`Ctrl + v`是剪贴板中的pastig,你应该使用`Ctrl + q`来选择一个块 (3认同)
  • 在 macOS 中(至少)你需要通过 `v` 或 `V` 进入 VISUAL 模式,然后按 `p` (2认同)

Kal*_*lah 55

他们的文档说:

剪切和粘贴:

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

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

d= delete=cut

y= yank=copy


Ran*_*ris 34

这可能是更容易记住另一种选择是放置在两行标志mamb,然后运行:'a,'byank.

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


jah*_*roy 15

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

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

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

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

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


我一直做的一件事是将光标和标记x之间的所有东西都拉到剪贴板中.

你可以这样做:

"+y'x

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


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


Ama*_*are 11

键盘快捷键是:

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

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


cat*_*tuf 11

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

:6,12 co .
Run Code Online (Sandbox Code Playgroud)

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

:6,12t100
Run Code Online (Sandbox Code Playgroud)

资料来源:https : //www.reddit.com/r/vim/comments/8i6vbd/ficient_ways_of_copying_few_lines/