我已经在 VIM 中安装了 python-mode。但我也安装了 Syntastic。既然都做语法检查,会不会有冲突?如何关闭 Syntastic for Python 文件?
谢谢你的帮助
我已经在 VIM 中安装了 python-mode。但我也安装了 Syntastic。既然都做语法检查,会不会有冲突?如何关闭 Syntastic for Python 文件?
谢谢你的帮助
要扩展@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。它解决了冲突,尽管它并不完全符合您的要求。
手册中对此进行了回答(请参阅: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
我不在 python 中工作,所以我不能告诉你是否会发生冲突,但你可以为 python 文件关闭 Syntastic - 请参阅:h syntastic_ignore_files
.
对于文件类型为 python 的 Vim 缓冲区,我使用以下命令禁用 syntastic(不让文件写入时触发 syntastic):
autocmd FileType python let g:syntastic_check_on_wq = 0
请参阅我的.vimrc。