如何一次检查多个文件?

How to check multiple files at once?

目前,如果我 运行 :SyntasticCheck:Errors 仅显示当前缓冲区的错误。我想要它做的是检查当前工作目录中的所有 Python (*.py) 文件,以便所有位置都聚合在一个 LocationList 中。

我知道这是可能的,因为 Syntastic 文档暗示了它,例如有一个 syntastic_ignore_files 忽略文件名模式的设置。


我失败的尝试:

  1. 设置let g:syntastic_aggregate_errors = 1
  2. :n *.py
  3. 打开所有*.py个文件
  4. :bufdo SyntasticCheck
  5. 它循环遍历每个缓冲区并运行进行检查。但是,完成后 :Errors 仅显示检查的最后一个缓冲区的错误。

Currently, if I run :SyntasticCheck, :Errors displays errors for the current buffer only. What I want it to do is to check all Python (*.py) files in the current working directory, and so that all the locations are aggregated in a single LocationList.

这是不可能的,目前没有实施的计划。

I know this is possible because the Syntastic documentation implies it, e.g. there is a syntastic_ignore_files setting for ignoring patterns of filenames.

一些检查器检查包含文件等,有时您可能不关心那里的错误。此外,有些情况下您不想自动检查某些文件(这在启用活动模式时通常很有用)。

let g:syntastic_aggregate_errors = 1

当运行对同一个文件使用不同的检查器时,这会汇总错误。 运行对一组文件使用同一个检查器时,它不会汇总错误。

It cycles through each buffer and runs the check. However, when this is finished :Errors shows errors only for the last buffer that was checked.

是的,:Errors 显示当前缓冲区的错误 window。

您可以设置 g:syntastic_check_on_open 和活动模式,并在单独的 windows 中打开文件。这将 运行 检查所有文件,但结果仍然是每个文件,而不是全局的。由于 Vim 的 API 的限制,window 的位置会被搞砸。基本上,如果您 运行ning 的检查器还没有自行检查所有文件,就没有办法做您想做的事。

Vim 支持 errorfiles,因此如果您的底层检查器可以按 Vim 期望的格式输出错误列表,只需 运行 vim -q [errorfile] 并且 quickfix 列表将填充所有错误。您可以循环浏览 quickfix 列表中的位置(例如,使用 :cn),Vim 会在您进行时为您打开相应的文件。