VIM + Syntastic:如何禁用检查器?

我正在使用为我的HTML文件启用的Syntastic。 由于我有一个非常大的文件,启用了“validation器W3”检查器,GVIM或VIM在保存文件(:w)时变得非常慢。

是否可以暂时切换合成为当前会话?

使用:SyntasticToggleMode可以将:SyntasticToggleMode切换到被动模式,这将禁用自动检查。 然后,您可以运行:SyntasticCheck来检查文件。

有关更多信息,请参阅:help syntastic-commands

另外还有一点需要注意的是,如果合成速度对于你来说太慢了,而你已经转向了NeoVim,可以考虑尝试使用Neomake 。 与Syntactic不同,它是asynchronous运行的,所以即使速度很慢也不会妨碍你。

我已经禁用默认的Syntastic,并激活/禁用错误检查与我的.vimrc中的以下内容:

 let g:syntastic_mode_map = { 'mode': 'passive', 'active_filetypes': [],'passive_filetypes': [] } nnoremap <Cw>E :SyntasticCheck<CR> :SyntasticToggleMode<CR> 

当我需要使用错误检查时,我只需点击: ctrl-w E

杰米和福斯的答案替代,可以通过指定检查器完全禁用检查器,如下所示:

 let g:syntastic_html_checkers=[''] 

还要确保syntastic_check_on_open没有设置为1,这将反制上面的行:

 let g:syntastic_check_on_open = 0 

您可以closures整个会话的Syntastic(由Jamie Schembri回答),但是如果这只是一个“非常大的文件”的问题,您可能只想禁用一个缓冲区。

我在工作中处理的一些文件是绝对不符合PSR标准的。 大多数工作很好。 我正在寻找function来禁用这些问题文件的Syntastic。 主要贡献者概述的“ SyntasticDisableToggle ”解决scheme的一个简单forms适用于我:

 "disable syntastic on a per buffer basis (some work files blow it up) function! SyntasticDisableBuffer() let b:syntastic_skip_checks = 1 SyntasticReset echo 'Syntastic disabled for this buffer' endfunction command! SyntasticDisableBuffer call SyntasticDisableBuffer() 

因为这不会影响其他缓冲区,我可以继续使用这个真棒插件的任何其他(部分)兼容的文件,我已经打开。

这不直接解决这个问题,但可以帮助超越本届会议。 如果你有一个文件,你必须经常编辑,但是你知道你总是要禁用Syntastic on(例如,它有成千上万的错误,你打算不修复它们,并在UI放缓的结果),然后永久列入黑名单非常方便。

为此,请使用syntastic_ignore_files选项。 它隐藏在帮助,但您可以使用这个function的正则expression式黑名单文件。

  'syntastic_ignore_files' Default: [] Use this option to specify files that syntastic should never check. It's a list of regular-expression patterns. The full paths of files (see ::p) are matched against these patterns, and the matches are case sensitive. Use \c to specify case insensitive patterns. Example: let g:syntastic_ignore_files = ['\m^/usr/include/', '\m\c\.h$'] 

以下设置为我工作。

 let g:syntastic_mode_map = { 'mode': 'passive', 'active_filetypes': [],'passive_filetypes': [] } noremap <Cw>e :SyntasticCheck<CR> noremap <Cw>f :SyntasticToggleMode<CR> Ctrl-w + e shall enable checking Ctrl-w + f shall disable checking To disable warnings use: let g:syntastic_quiet_messages={'level':'warnings'} 

另一个closures检查单个缓冲区的选项(无论文件types)是使用:let b:syntastic_mode="passive" 。 由于它不是一个切换,即使缓冲区当前处于被动模式,它也能工作。

如果要暂时closures所有缓冲区中所有文件types的检查,可以使用:bufdo let b:syntastic_mode="passive" 。 我已经设置映射来closures/打开所有缓冲区的检查:

 nnoremap <leader>sN :bufdo let b:syntastic_mode="passive"<cr> nnoremap <leader>sY :bufdo unlet b:syntastic_mode<cr> 

在做很多开放缓冲区的时候,这是特别有用的。

感谢Steven Lu ,我现在可以忽略Ansible Roles的文件。

 " ignore files of Ansible Roles. let g:syntastic_ignore_files = ['\m^roles/']