有没有一种方法可以将vim命令的输出粘贴到缓冲区中?

5

有时我想要做的事情是将vim命令的输出粘贴到缓冲区中。例如,当我编辑vimrc时,能够轻松地调整statusline,然后只需执行类似以下命令:

"=set statusline?<Enter>p

问题是,这会产生收益。
E121: Undefined variable: set
E15: Invalid expression: set statusline?
Press ENTER or type command to continue

我认为这是可能的,只是我不太了解内置函数及其使用方法(我看到有人使用“expand”,但在任何情况下我都没有成功地使用它),即使我(认为我)对正常模式有相当扎实的理解。
请注意,这个具体的例子有点牵强,但我现在想不到更好的例子。对于上面的特定用例,我可以使用“:p”获取整个“set”命令,然后进行编辑以适应,但我经常遇到其他情况,我希望vim告诉我某些内容,然后我想将该输出粘贴到某个地方,以便我可以继续查看它并继续工作。
2个回答

5
您可以粘贴一个选项设置:
"=&statusline<Enter>p

我不知道如何将任意命令的输出放入缓冲区中。

3
将输出重定向到一个寄存器,然后粘贴该寄存器即可。你是在谈论其他事情吗? - Herbert Sitz
@Herbert Sitz,我认为您对这个问题的回答是最好的。我不知道:redir - Laurence Gonsalves
实际上,我喜欢你提供的直接粘贴选项,这是我从未使用过的功能,我会开始自己使用……谢谢。 - Herbert Sitz
很棒,对于Laurence的回答和Herbert的评论都很赞。看来redir在“various.txt”抓取包中。 :) - dash-tom-bang

4
设置的值存储在以符号&为前缀的变量中。因此,可以通过引用&statusline来访问statusline设置的值。插入到文档中的一种方法是使用“表达式”寄存器<ctrl-R>=。要使用它,请进入插入模式,然后按<ctrl-R>,然后按=。您将在命令行中看到一个等号,在其中您可以输入:&statusline,然后按enter。这将把该值插入到缓冲区中。

谢谢 - 我通常不在插入模式下进行此操作,但知道设置是用和号引用的很好。 - dash-tom-bang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接