11

我已经在 VIM 中安装了 python-mode。但我也安装了 Syntastic。既然都做语法检查,会不会有冲突?如何关闭 Syntastic for Python 文件?

谢谢你的帮助

4

4 回答 4

13

要扩展@abjuk 的答案,您可以根据文件扩展名禁用:

let g:syntastic_ignore_files = ['\.py$']

不过,这仅适用于以 . 结尾的文件.py。它不适用于 Vim 认为的其他文件filetype=python。例如,以 shebang like 开头的文件#!/usr/bin/env python仍会将 Vim 置于 python 模式。

Syntastic 还支持syntastic_mode_map(请参阅:h syntastic_mode_map),文档似乎表明应该允许根据文件类型禁用,但我无法让它工作。

另一种选择是启用 Syntastic,并禁用 python-mode 的语法检查:

let g:pymode_lint = 0

这是我使用的,因为我更喜欢 Syntastic。它解决了冲突,尽管它并不完全符合您的要求。

于 2013-10-07T16:51:48.543 回答
6

手册中对此进行了回答(请参阅:help syntastic-pymode):

Syntastic 可以与 'python-mode' Vim 插件一起使用(参见https://github.com/klen/python-mode)。但是,当您将缓冲区保存到磁盘时,它们都默认运行语法检查,这可能不是您想要的。为避免两个插件都打开错误窗口,您可以在 syntastic 中为 python 设置被动模式(请参阅 参考资料syntastic_mode_map),或者通过设置pymode_lint_on_write为 0 在“python-mode”中禁用 lint 检查。例如:

let g:pymode_lint_on_write = 0
于 2015-01-27T14:42:07.567 回答
1

我不在 python 中工作,所以我不能告诉你是否会发生冲突,但你可以为 python 文件关闭 Syntastic - 请参阅:h syntastic_ignore_files.

于 2013-10-06T13:16:23.697 回答
0

对于文件类型为 python 的 Vim 缓冲区,我使用以下命令禁用 syntastic(不让文件写入时触发 syntastic):

autocmd FileType python let g:syntastic_check_on_wq = 0

请参阅我的.vimrc

于 2014-06-23T15:00:37.553 回答