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

Yve*_*nge 113 vim syntastic

我正在使用为我的HTML文件启用的Syntastic.由于我有一个非常大的文件,启用了"验证器w3"检查器,GVIM或VIM在保存文件时变得非常慢(:w).

是否有可能只为当前会话暂时切换合成?

Jam*_*bri 158

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

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

另请注意:如果Syntastic很慢,请考虑尝试使用啤酒作为替代方案.与Syntastic不同,它以异步方式运行,所以即使它很慢也不应该阻碍你.

  • 您可以在.vimrc中创建这样的别名:`:command Sd SyntasticToggleMode`然后在vi中按:Sd,它将禁用合成.有关如何执行此操作的详细信息,请访问:http://stackoverflow.com/questions/3878692/aliasing-a-command-in-vim (2认同)
  • 不错.如果有人想要使用它,请继续映射到F6!nmap <F6>:SyntasticToggleMode <CR>` (2认同)

gos*_*pes 84

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

let g:syntastic_mode_map = { 'mode': 'passive', 'active_filetypes': [],'passive_filetypes': [] }
nnoremap <C-w>E :SyntasticCheck<CR> :SyntasticToggleMode<CR>
Run Code Online (Sandbox Code Playgroud)

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

  • 我已将此添加到我的`.vimrc`中.但是如果我按下**Ctrl-w E**Syntastic弹出一秒钟然后再次消失.任何想法出了什么问题和/或如何追踪它? (3认同)

chu*_*tsu 33

替代Jamie和gospes答案,可以通过指定检查器来完全禁用检查器:

let g:syntastic_html_checkers=['']
Run Code Online (Sandbox Code Playgroud)

还要确保syntastic_check_on_open未设置为1,这将抵消上述行:

let g:syntastic_check_on_open = 0
Run Code Online (Sandbox Code Playgroud)


sst*_*ele 10

您可以在整个会话期间关闭Syntastic(由Jamie Schembri回答),但如果只是一个"非常大的文件"的问题,您可能只想禁用一个缓冲区.

我在工作中处理的一些文件绝对不符合PSR标准.大部分工作都很好.我一直在寻找功能,只为那些问题文件禁用Syntastic.主要贡献者概述的" SyntasticDisableToggle "解决方案的一种更简单的形式对我有用:

"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()
Run Code Online (Sandbox Code Playgroud)

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


Ste*_* Lu 6

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

为此,请使用该syntastic_ignore_files选项.它隐藏在帮助中,但您可以使用此功能的正则表达式将文件列入黑名单.

                                                    '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$']
Run Code Online (Sandbox Code Playgroud)


kos*_*hyg 5

以下设置对我有用.

let g:syntastic_mode_map = { 'mode': 'passive', 'active_filetypes':   [],'passive_filetypes': [] }
noremap <C-w>e :SyntasticCheck<CR>
noremap <C-w>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'}
Run Code Online (Sandbox Code Playgroud)


小智 5

与其他一些人提到的类似,这里有一个 vimrc 段,默认情况下会关闭 Syntastic,但映射一个按钮(这里是 F10)来检查当前文件,并使用与切换相同的按钮来关闭检查。它有点慢,但有效。

let g:syntastic_check_on_open = 0                                                                                 
let g:syntastic_check_on_wq = 0
let g:syntastic_mode_map = {'mode':'passive'}
nnoremap <F10> :SyntasticCheck<CR> :SyntasticToggleMode<CR> :w<CR>
Run Code Online (Sandbox Code Playgroud)