2010-12-15 91 views
5

我不时要做的事情是将vim命令的输出粘贴到缓冲区中。例如。当我编辑我的vimrc,这将会是很高兴能够与statusline拨弄,然后能够只是做一些类似于有没有办法将vim命令的输出粘贴到缓冲区中?

"=set statusline?<Enter>p 

问题是,收益率

E121: Undefined variable: set 
E15: Invalid expression: set statusline? 
Press ENTER or type command to continue 

我认为这是可能的,而且我对内置函数以及如何使用它们还不够了解(我在这里和那里看到expand,但在任何情况下都没有成功使用它),尽管我(认为​​我)对正常模式有非常深刻的理解。

请注意,这个具体的例子是有点人为的,但我现在想不到一个更好的例子。对于上面的具体用例,我可以只用":p来获得我在实验过程中使用的整个set命令,然后进行编辑以适应,但相当有规律地遇到其他情况,我想让vim告诉我一些事情,然后我想粘贴输出到某个地方,这样我可以在继续工作的同时继续查看它。

回答

4

你可以粘贴选项设置。

+3

'redir'输出到寄存器,然后粘贴寄存器将工作。或者你在说别的什么? – 2010-12-15 02:40:03

+0

@Herbert Sitz我认为你对这个问题有最好的答案。我不知道':redir'。 – 2010-12-15 02:48:25

+0

其实,我喜欢你给的直接粘贴选项,这是我没有用过的东西,并且会开始使用我自己。 。 。谢谢。 – 2010-12-15 05:53:44

4

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

"=&statusline<Enter>p 

我不知道任何方式把缓冲区中的任意命令的输出,:

+0

谢谢 - 当我这样做时,我通常不处于插入模式,但很高兴知道设置是用&符号引用的。 – 2010-12-16 02:13:54

相关问题