我怎样才能将多行内容提取到寄存器中?

我怎样才能将多行内容提取到寄存器中?

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

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

有什么建议么?

答案1

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

此外,我最喜欢的方式不是计算我想要提取的行数,而是通过V移动命令在可视模式下选择它们,然后点击y提取它或者"_y将其提取到寄存器中。

另外,我刚刚尝试在可视线模式下选择多行并将其拉入非默认寄存器,例如Vjjj"oy- 并且它可以起作用。

答案2

您可以在文件中的任何位置使用以下命令。

:2,5y a

拉出第 2 至第 5 行。进入注册

:7pu a

将寄存器 a 粘贴在第 7 行下。

答案3

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

Vim 命令速查表

答案4

当它是最后一次搜索发生时,可以提取多行。

例如给出以下多行非贪婪模式

/start\_.\{-}end/norm gn"iy

然后,您将在寄存器 (通过 打印) 中获得所提取的多行模式 (在start和之间end) 。@iecho @i

有关的:如何打印多行匹配?在 Vi

相关内容