gpt4 book ai didi

vim - 如何在 quickfix 窗口中浏览任何随机命令的输出?

转载 作者:行者123 更新时间:2023-12-04 18:33:33 27 4
gpt4 key购买 nike

我想运行一些 $RANDOM_COMMAND ,并将结果在(“管道到”)quickfix 窗口( :copen/:cfile )中打开。这是可能的,而不必在 vimrc 中定义一些命令? (希望以某种“简单的方式”,即我希望能够记住这一点,这样我就可以在任何带有 Vanilla vim 的新随机框上运行它,我必须登录。)

编辑: 最初不知道如何更准确地表达“简单方式”,但现在我至少部分知道了:我更喜欢 答案为 1,最多 2 行

edit2: 尝试了如下(来自 thisthis ):

:call setqflist(split(system('RANDOM_COMMAND'), '\n'))
:copen

但无论如何似乎都不起作用:/(而且也很丑)

最佳答案

一种方法:

:set makeprg=$RANDOM_COMMAND
:make
:copen

或者,执行命令并在临时文件中捕获输出:
:! $RANDOM_COMMAND > out
:cfile out
:copen

无论如何,输出必须与 'errorformat' 匹配设置,以便 Vim 可以解析文件名和行号(如果您需要这些;否则,您可以只使用临时缓冲区以及 quickfix 列表)。

[编辑] 一些改进

使其成为 oneliner ,然后稍微缩短,您可以:
: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

关于vim - 如何在 quickfix 窗口中浏览任何随机命令的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25083238/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com