有没有办法将vim命令的输出粘贴到缓冲区中?
我不时要做的事情是将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告诉我一些事情,然后我想粘贴输出到某个地方,这样我可以在继续工作的同时继续查看它。
你可以粘贴选项设置。
设置的值存储在前缀为&
符号的变量中。所以statusline
设置的值可以通过参考&statusline
来访问。要插入到文档中,一种方法是使用“表达式”寄存器<ctrl-R>=
。要使用它,请进入插入模式,然后按<ctrl-R>
,然后按=
。您将在命令行中看到等号,您可以在其中输入:&statusline
,然后按enter
。这会将值插入缓冲区。然而
"=&statusline<Enter>p
我不知道任何方式把缓冲区中的任意命令的输出,:
谢谢 - 当我这样做时,我通常不处于插入模式,但很高兴知道设置是用&符号引用的。 – 2010-12-16 02:13:54
'redir'输出到寄存器,然后粘贴寄存器将工作。或者你在说别的什么? – 2010-12-15 02:40:03
@Herbert Sitz我认为你对这个问题有最好的答案。我不知道':redir'。 – 2010-12-15 02:48:25
其实,我喜欢你给的直接粘贴选项,这是我没有用过的东西,并且会开始使用我自己。 。 。谢谢。 – 2010-12-15 05:53:44