Vim:Ack.vim和AsyncRun在quickfix窗口上发生冲突

时间:2018-09-20 07:32:21

标签: vim

在我的Vim配置中,我同时具有 Ack.vim AsyncRun 插件。至少默认情况下,这两个插件都输出到quickfix窗口。这对我来说是个问题,因为我需要打开 Ack.vim 结果,然后在处理这些结果的同时执行 AsyncRun 命令。但是一旦执行 AsyncRun ,它就会用输出覆盖 Ack.vim 结果,因此我必须重新运行相同的:Ack搜索才能显示下一个搜索结果

示例:我的工作流程通常包括使用:Ack进行搜索,然后我从结果中修改一个文件,写入文件,然后从下一个结果中修改文件,依此类推。但是,我也有autocmd BufWritePost配置,该配置在写入缓冲区时运行 AsyncRun (例如JS prettier或Python的yapf)。因此,一旦我修改了第一个文件并写入了缓冲区, Ack.vim 的输出就会被 AsyncRun 的输出替换。

有没有办法做到这一点?

  • 使用location-list来代替 Ack.vim AsyncRun ,而不是quickfix窗口吗?

  • 还是同时有两个quickfix窗口,每个窗口用于每个插件的输出?

  • 还是什至取消显示 AsyncRun 输出而根本不打开quickfix呢? (就我而言,在运行yapfprettier时,我真的不需要研究它们的输出)

1 个答案:

答案 0 :(得分:2)

查看Ack.vim的文档。还有很多其他命令,例如:LAck,这些命令将填充位置列表而不是快速修复列表。

quickfix窗口是全局的,因此一次只能有一个。但是,您始终可以使用:cprevious:cnext导航到上一个和下一个快速修复列表。另一方面,位置列表是每个窗口的。

我建议使用:help quickfix浏览Quickfix和位置列表文档。