最终通过阅读快速修复窗口的正则vimdoc,找到了最简单的解决方案:
:cex system('$RANDOM_COMMAND') | copen
(| copen
部分是可选的)。
然而,Ingo Karkat的解决方案可能具有可用性优势,因为在连续运行时,只需运行较短的:grep即可。
实现这一目标的一种方法:
:set makeprg=$RANDOM_COMMAND
:make
:copen
或者,执行命令并将输出捕获到临时文件中:
:! $RANDOM_COMMAND > out
:cfile out
:copen
:set mp=RANDOM_COMMAND | make | copen
make
命令可以带参数,在 $*
的位置进行扩展。以下是更具体的示例::set mp=mycommand\ -d\ $PWD\ $* | make myarg | copen
或者也可以使用:set grepprg
和:grep
来完成类似的操作,这样可以更简洁:
:set gp=mycommand\ -d\ $PWD\ $* | gr myarg | copen
:! $RANDOM_COMMAND | :copen
这样的东西... - akavel:set makeprg=$FOOBAR ; :make ; :copen
或其他什么的? - akavelset makeprg=$FOOBAR|exe 'make'|copen
。 - Ingo Karkat
cexp ":execute ls"
,但它不起作用。需要一些关于Vim脚本的帮助。 - avimehenwal