Syntastic和Python-mode可以一起使用吗?

13

我在VIM中安装了python-mode。但我也安装了Syntastic。由于两者都进行语法检查,是否会发生冲突?我如何关闭针对Python文件的Syntastic?

感谢任何帮助。

4个回答

14

在 @abjuk 的回答上进行扩展,您可以通过以下方式禁用特定文件类型:

let g:syntastic_ignore_files = ['\.py$']
这仅适用于以.py结尾的文件。对于Vim认为filetype=python的其他文件则不起作用。例如,以shebang开头的文件,如#!/usr/bin/env python,仍会将Vim置于python模式。
Syntastic还支持syntastic_mode_map(参见:h syntastic_mode_map),文档似乎表明它应该允许基于文件类型禁用语法检查,但我无法使其正常工作。
另一个选择是保留Syntastic启用,并禁用python-mode的语法检查:
let g:pymode_lint = 0

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


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

1

我不从事Python工作,所以无法告诉您是否会有冲突,但是您可以关闭Syntastic对Python文件的检查-请参见:h syntastic_ignore_files


好的,那听起来是个不错的主意。因为 Python Mode 应该会进行语法检查,所以这样做更安全。另一个问题是 Syntastic 在我的 Java 或 C 代码中无法检测到任何错误 - 或者当它检测到时,都是些无意义的东西。它将编译为正确的代码标记为无效,并且无法检测到语法上无效的代码。有什么想法吗? - user798275

0
我使用以下代码来禁用Syntastic(不让Syntastic在文件写入时触发)对于文件类型为Python的Vim缓冲区:
autocmd FileType python let g:syntastic_check_on_wq = 0

看看我的.vimrc文件。


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