从vimscript中的内部vim命令获取返回值

seb*_*ger 4 vim

我想做点什么

let colors = execute(":highlight")
Run Code Online (Sandbox Code Playgroud)

这显然是不正确的,我所能做的就是execute(":highlight")打开一个窗口,但我真正需要的是将该窗口的内容转换为变量 - 就像system()调用外部命令一样.可以这样做吗?

ib.*_*ib. 5

有一个被调用的命令:redir专门用于捕获文件,寄存器或变量中的一个或多个命令的输出.在后一种情况下,用法如下例所示.

:redir => colors
:silent highlight
:redir END
Run Code Online (Sandbox Code Playgroud)

要查看调用命令的完整列表,请参阅 :help :redir.另请参阅Vim中扩展突出显示组的问题的回答,以供实际使用:redir.