返回值我想这样做从内部Vim命令获得Vimscript中
let colors = execute(":highlight")
这显然是不正确的,所有我能做的就是execute(":highlight")
这将打开一个窗口,但我真正需要的是将该窗口的内容变为一个变量 - 很像system()
调用将为外部命令执行的操作。这可以做到吗?
返回值我想这样做从内部Vim命令获得Vimscript中
let colors = execute(":highlight")
这显然是不正确的,所有我能做的就是execute(":highlight")
这将打开一个窗口,但我真正需要的是将该窗口的内容变为一个变量 - 很像system()
调用将为外部命令执行的操作。这可以做到吗?
有一个叫做:redir
的命令,它专门设计用来捕获一个或多个命令在一个文件,一个寄存器或一个变量中的输出。在后一种情况下,用法如下面的示例 。
:redir => colors
:silent highlight
:redir END
要查看调用命令的方式完整列表,请参阅 :help :redir
。关于:redir
的实际用途,请参见my answer至Extending a highlighting group in Vim的问题。