有没有办法将vim命令的输出粘贴到缓冲区?

时间:2010-12-15 02:11:54

标签: vim

我想要做的事情是将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 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:4)

您可以粘贴选项设置:

"=&statusline<Enter>p

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