如何粘贴指定行号的寄存器的内容?

假定一个文本文件有5行,每行都有一个换行符。该文本文件在gvim中打开。在命令模式下并且光标在第1行中时,当前行的内容将被拖入默认寄存器中。

如何在不移动光标的情况下将粘贴/粘贴到不同的行号?例如,光标在第1行中。应将带上下划线的内容放在第4行中。如何在gvim中做到这一点而不将光标移到第4行?

yxfwade3 回答:如何粘贴指定行号的寄存器的内容?

光标位置是命令寻址的重要部分;对于交互式编辑,“远距离”运行命令是没有意义的。 (在Vimscript中,您可以使用setline()之类的低级函数来修改任意位置,但这不应该作为正常使用的一部分,在这里我不同意@SergioAraujo的回答,该回答将该命令表示为适合交互式使用。 )

相反,Vim可使您轻松地暂时移至某个位置,然后返回到您的来源。 :help jumplist尤其是CTRL-O是为此目的。您的示例通过4Gp<C-O>4Gp``粘贴完成;要使用Ex命令,必须显式设置跳转点:m':4put<CR>``。使用跳转列表的优点在于,粘贴目标现在也已成为其中的一部分,因此您也可以轻松地(使用<C-I>)继续执行跳转目标。

,

这里有个例子:

 :call setline(4,getline(4) . " " . @")

我们将第4行设置为第4行本身加上空格“” 加上默认寄存器@“。

只是在您只想放置内容的情况下 第4行的第1行的类型:

:call setline(4,getline(1))
,

使用:t命令(:copy的同义词)。例子:

:1t 4
:.t 4
本文链接:https://www.f2er.com/3164443.html

大家都在问