web-dev-qa-db-ja.com

VIM + Syntastic:チェッカーを無効にする方法は?

HTMLファイルで有効になっているSyntasticを使用しています。 「validator w3」チェッカーが有効になっている非常に大きなファイルがあるため、ファイルの保存中にGVIMまたはVIMが非常に遅くなりました(:w)。

現在のセッションだけで一時的に構文をオフに切り替えることは可能ですか?

112
Yves Lange

:SyntasticToggleModeを使用して、Syntasticをパッシブモードに切り替えて、自動チェックを無効にすることができます。その後、代わりに:SyntasticCheckを実行してファイルを確認できます。

詳細については、:help syntastic-commandsを参照してください

別の注意:Syntasticが遅い場合は、代替として ale を試すことを検討してください。 Syntasticとは異なり、非同期で実行されるため、処理速度が遅くても邪魔になりません。

157
Jamie Schembri

デフォルトではSyntasticを無効にし、.vimrcで次のエラーチェックを有効/無効にします。

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

エラーチェックを使用する必要がある場合は、単にctrl-w Eを押します。

82
gospes

Jamieとgospesの回答の代わりに、次のようにチェッカーを指定することでチェッカーを完全に無効化できます。

let g:syntastic_html_checkers=['']

また、syntastic_check_on_openが1に設定されていないことを確認してください。これにより、上記の行が無効になります。

let g:syntastic_check_on_open = 0
33
chutsu

セッション全体でSyntasticをオフにすることもできます( Jamie Schembri で回答)。ただし、「非常に大きなファイル」に問題がある場合は、1つのバッファーのみを無効にすることもできます。

私の仕事で作業しているファイルのいくつかは、絶望的に非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()

これは他のバッファには影響しないので、開いている他の(部分的に)準拠ファイルにはこの素晴らしいプラグインを使い続けることができます。

10
ssteele

これは質問に直接対処するものではありませんが、現在のセッションを超えて役立つことがあります。頻繁に編集する必要があるが、Syntasticを常に無効にする必要があることがわかっているファイルがある場合(たとえば、何千ものエラーがあり、それらを修正せず、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$']
6
Steven Lu

次の設定がうまくいきました。

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'}
5
koshyg

他の数人が言及したものと同様に、ここではデフォルトでSyntasticをオフにするvimrcセグメントがありますが、ボタン(ここでは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>
3
nothijngrad

(ファイルタイプに関係なく)単一のバッファのチェックをオフにする別のオプションは、:let b:syntastic_mode="passive"を使用することです。これはトグルではないため、バッファが現在パッシブモードになっていても機能します。

すべてのバッファ内のすべてのファイルタイプのチェックを一時的にオフにする場合は、:bufdo let b:syntastic_mode="passive"を使用できます。すべてのバッファのチェックをオン/オフするためのセットアップマッピングがあります。

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

これは、多くのオープンバッファで:wqaを実行する場合に特に役立ちます。

3
Mark Grimes

Steven L のおかげで、Ansible Rolesのファイルは無視できます。

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