从Vimscript中的内部Vim命令获取返回值
我想做一些像从Vimscript中的内部Vim命令获取返回值,vim,Vim,我想做一些像 let colors=execute(“:highlight”) 这显然是错误的;我所能做的就是execute(“:highlight”),它将打开一个窗口,但我真正需要的是将该窗口的内容放入一个变量中,就像system()调用将用于外部命令一样。这能做到吗 let colors = lh#askvim#exe(':hi') 只是封装。或者更好: let colors = lh#askvim#execute(':hi') 将结果作为列表变量返回,如果没有选择,则通过:redi
let colors=execute(“:highlight”)
这显然是错误的;我所能做的就是execute(“:highlight”)
,它将打开一个窗口,但我真正需要的是将该窗口的内容放入一个变量中,就像system()
调用将用于外部命令一样。这能做到吗
let colors = lh#askvim#exe(':hi')
只是封装。或者更好:
let colors = lh#askvim#execute(':hi')
将结果作为列表变量返回,如果没有选择,则通过
:redir
,或者在定义时通过。这种新方法更受欢迎,因为它具有较少的不良副作用。有一个名为:redir
的命令,专门设计用于
将一个或多个命令的输出捕获到文件、寄存器或
一个变量。在这种情况下,后一种选择是我们想要的:
:redir => colors
:silent highlight
:redir END
要查看调用该命令的方法的完整列表,请参阅
:帮助:重拨
。另请参见问题“”,了解:redir
的另一实际用法