Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim Syntastic和Python模式结合在一起?_Vim_Python Mode_Syntastic - Fatal编程技术网

Vim Syntastic和Python模式结合在一起?

Vim Syntastic和Python模式结合在一起?,vim,python-mode,syntastic,Vim,Python Mode,Syntastic,我已经在VIM中安装了python模式。但我也安装了Syntastic。既然两者都进行语法检查,是否会有冲突?如何关闭Python文件的Syntastic 感谢您的帮助,我不使用python,所以我无法告诉您是否会发生冲突,但您可以关闭python文件的Syntastic-请参阅:h Syntastic_ignore_files要扩展@abjuk的答案,您可以使用以下基于文件扩展名禁用: let g:syntastic_ignore_files = ['\.py$'] 但这仅适用于以.py结尾

我已经在VIM中安装了python模式。但我也安装了Syntastic。既然两者都进行语法检查,是否会有冲突?如何关闭Python文件的Syntastic


感谢您的帮助,我不使用python,所以我无法告诉您是否会发生冲突,但您可以关闭python文件的Syntastic-请参阅
:h Syntastic_ignore_files

要扩展@abjuk的答案,您可以使用以下基于文件扩展名禁用:

let g:syntastic_ignore_files = ['\.py$']
但这仅适用于以
.py
结尾的文件。对于Vim认为
filetype=python
的其他文件,它不起作用。例如,以shebang开头的文件,如
#/usr/bin/env-python
仍将Vim置于python模式

Syntastic还支持
Syntastic\u mode\u map
(请参见
:h Syntastic\u mode\u map
),文档似乎指出,这应该允许基于文件类型禁用,但我无法使其工作

另一个选项是保持Syntastic处于启用状态,并禁用python模式的语法检查:

let g:pymode_lint = 0

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

我使用以下命令来禁用文件类型为python的Vim缓冲区的syntastic(不允许在文件写入时触发syntastic):

autocmd FileType python let g:syntastic_check_on_wq = 0

请参阅我的。

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

Syntastic可以与“python模式”Vim插件一起使用(请参阅)。但是,当您将缓冲区保存到磁盘时,默认情况下它们都会运行语法检查,这可能不是您想要的。为了避免两个插件都打开错误窗口,您可以在syntastic中为python设置被动模式(请参见
syntastic\u mode\u map
),或者通过将
pymode\u lint\u on\u write
设置为0,在“python模式”中禁用lint检查。例如:


好的,听起来是个好主意。这样做更安全,因为Python模式应该执行语法检查。另一个问题是Syntastic在我的java或C代码中没有检测到任何错误——或者当它检测到错误时,这完全是胡说八道。它将编译的正确代码标记为无效,并且不会检测到语法无效的代码。有什么想法吗?
let g:pymode_lint_on_write = 0