如何一次检查多个文件?

时间:2016-01-21 10:07:50

标签: vim syntastic

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

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

我失败的尝试:

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

2 个答案:

答案 0 :(得分:2)

  

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

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

  

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

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

  

let g:syntastic_aggregate_errors = 1

这会针对同一文件运行不同的检查程序时聚合错误。当针对一组文件运行相同的检查程序时,它不会聚合错误。

  

循环遍历每个缓冲区并运行检查。但是,完成此操作后:Errors仅显示已检查的最后一个缓冲区的错误。

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

您可以设置g:syntastic_check_on_open和活动模式,并在单独的窗口中打开文件。这将对所有文件运行检查,但结果仍然是每个文件,而不是全局。由于Vim API的限制,窗口位置会被搞砸。基本上,如果您运行的检查器尚未自行检查所有文件,则无法执行您想要的操作。

答案 1 :(得分:1)

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