我想要做的事情是将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告诉的情况我的东西,然后我想把那个输出粘贴到某个地方,这样我就可以在继续工作的同时继续看它。
答案 0 :(得分:4)
设置值存储在前缀为&
符号的变量中。因此,可以通过引用statusline
来访问&statusline
设置的值。要插入文档,一种方法是使用“表达式”寄存器<ctrl-R>=
。要使用它,请输入插入模式,然后按<ctrl-R>
,然后按=
。您将在命令行中看到一个等号,您可以在其中输入:&statusline
,然后按enter
。这会将值插入缓冲区。
答案 1 :(得分:4)
您可以粘贴选项设置:
"=&statusline<Enter>p
然而,我不知道如何将任意命令的输出放在缓冲区中。