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

das*_*ang 5 vim

我不时想做的事情就是将vim命令的输出粘贴到缓冲区中.例如,当我正在编辑我的vimrc时,能够摆弄,statusline然后能够做类似于

"=set statusline?<Enter>p
Run Code Online (Sandbox Code Playgroud)

问题是,产量

E121: Undefined variable: set
E15: Invalid expression: set statusline?
Press ENTER or type command to continue
Run Code Online (Sandbox Code Playgroud)

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

请注意,这个具体的例子有点人为,但我现在想不出更好的一个.对于上面的具体用例,我可以只":p获得set我在实验中使用的整个命令,然后编辑以适应,但我经常遇到其他情况,我希望vim告诉我一些事情,然后我想粘贴输出在某个地方,我可以继续看待它,同时继续我的工作.

Lau*_*ves 5

您可以粘贴选项设置:

"=&statusline<Enter>p
Run Code Online (Sandbox Code Playgroud)

但是,我不知道有什么方法可以将任意命令的输出放入缓冲区。

  • `redir` 输出到寄存器中,然后粘贴寄存器就可以了。或者你在谈论别的什么? (3认同)