如何在使用vim的syntastic插件时有选择性地禁用某些文件类型的检查器?

7
例如,HTML局部模板被标记为大量错误,但它们应该是完整HTML文档的片段。

尝试使用:help syntastic-quickstart:help 'syntastic_mode_map' - Sato Katsura
3个回答

15

在你的 .vimrc 文件中:

let g:syntastic_mode_map = {
    \ "mode": "active",
    \ "passive_filetypes": ["go"] }

这将使 Syntastic 进入主动模式(在保存或打开时进行检查),但不适用于 Go 文件,只有在显式运行 :SyntasticCheck 时才会进行检查。只需将 passive_filetypes 数组更改为所需的内容即可。


这是指定数组的正确方式吗?"passive_filetypes": ["go", "html"] - Eno

1
.vimrc 中忽略 .env 文件的示例:
let g:syntastic_ignore_files = ['.env']

:help syntastic中:

使用此选项指定syntastic不应检查的文件。这是一个|regular-expression|模式列表。完整路径的文件(参见|::p|)与这些模式匹配,并且匹配区分大小写。使用|\c|指定不区分大小写的模式。例如:

let g:syntastic_ignore_files = ['\m^/usr/include/', '\m\c\.h$']

还有另一个,syntastic_<filetype>_<checker>_quiet_messages:

最后,变量'g:syntastic___quiet_messages'可用于过滤特定检查器产生的某些消息。其效果与|syntastic_quiet_messages|相同,只是过滤了来自相应检查器的消息。例如:>

let g:syntastic_python_pylama_quiet_messages = {"type": "style","regex": '\m\[C03\d\d\]' }


0

您可能可以编辑特定的HTML语法检查器设置,但也可以将以下内容添加到您的.vimrc文件中或输入为命令:

au BufNewFile,BufRead *.html set b:syntastic_skip_checks = 1

au是自动命令,当打开一个.html缓冲区时,syntastic会跳过检查它。前缀b:仅适用于当前缓冲区。


1
这个方法有点可行,但绝对不是你应该采用的方式,也不是 b:syntastic_skip_checks 的正确用法。请在手册中阅读有关被动文件类型的内容。 - Sato Katsura
感谢您的指针。我是否可以假设syntastic_mode_map中类型数组仅用于定义要排除的异常? - Eno

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接