如何将 `:function FunctionName` 的回显代码内容重定向到当前文件?

如何将 `:function FunctionName` 的回显代码内容重定向到当前文件?

我已经学会了如何用这个将变量值放入文件堆栈溢出链接。

例如 :let L = [1,2,3] :put string(L)

[1, 2, 3]

上面链接中提到的方法似乎正在处理表达式的返回值。
但是,如何捕获命令回显的内容呢echo?我想这就是function FunctionName工作原理,将函数的内容回显到屏幕上。
正如我的 vim 界面中显示的回显内容,它们不会进入某个寄存器或其他类型的缓冲区吗?
它能够捕获这些回显内容并将它们重定向到 vim 中的文件吗?

答案1

自己想出的解决办法:

:function Echo_to_file(expr_str)
:    redir => zen_temp | exe a:expr_str | redir END | put=zen_temp
:endfunction


:call Echo_to_file("function Echo_to_file")

   function Echo_to_file(expr_str)
1      redir => zen_temp | exe a:expr_str | redir END | put=zen_temp
   endfunction

它工作得很好,但我不知道为什么1结果很奇怪。

相关内容