如何将多行拉入寄存器?

ryz*_*ryz 49 vim editing

我想在 vim 的单个寄存器中提取多行,以便轻松地将不同的文本模板粘贴到文档中。

例如,“iyy 仅拉取当前行,如果我尝试在可视模式下选择多行,则不会将其写入寄存器。

有什么建议?

uli*_*tko 70

用于3Y将 3 行拉入默认寄存器;"i3Y用于注册 i.

此外,我最喜欢的方法不是计算我想拉的行,而是通过V和移动命令在视觉模式下选择它们,然后点击y以拉或"_y拉到寄存器中。

此外,我刚刚尝试在 Visual Line 模式下选择多行并拖入非默认寄存器,例如Vjjj"oy- 并且它有效。


awi*_*ing 29

从文件中的任何位置,您都可以使用以下内容。

:2,5y a
Run Code Online (Sandbox Code Playgroud)

Yank 行 2 - 5. INTO REGISTER a

:7pu a
Run Code Online (Sandbox Code Playgroud)

在第 7 行下粘贴注册。

  • @Scott 我很抱歉。你为什么不直接说,“伙计,用 :reg 检查你的方法。你会发现它不起作用。” 我会一直说,“哇,我的坏人”。 (3认同)

Nif*_*fle 10

使用m标记的开始,具有缓冲的域名(所以你可以键入mx)。将光标向下移动到您想要停止复制的位置,然后键入y'x(或者d'x如果您正在剪切和粘贴)。然后将 移动到要粘贴的位置,然后键入p

Vim 命令备忘单


Arc*_*ege 7

您在命令前面加上一个数字以获得要操作的行数。您还可以使用“文本对象”(如块的“]”和段落的“)”)-这可以根据上下文在多行上使用-默认值通常是单行。例如,"r5yy将从光标开始的五行拉入 'r' 寄存器。(或者您可以:.,+4y r在 ex 模式下输入以执行相同操作。)您也可以将数字与文本对象组合;"r10y).