web-dev-qa-db-fra.com

VIM + Syntastic: comment désactiver le vérificateur?

J'utilise Syntastic qui est activé pour mes fichiers HTML. Depuis que j'ai un très gros fichier avec "validator w3" activé, GVIM ou VIM est devenu très lent lors de l'enregistrement du fichier (: w).

Est-il possible de désactiver temporairement la syntaxe uniquement pour la session en cours?

112
Yves Lange

En utilisant :SyntasticToggleMode vous pouvez basculer Syntastic en mode passif, ce qui désactive la vérification automatique. Vous pouvez alors vérifier un fichier en lançant :SyntasticCheck au lieu.

Pour plus, voir :help syntastic-commands

Sur une autre note: si Syntastic est lent, pensez plutôt à essayer ale . Contrairement à Syntastic, il fonctionne de manière asynchrone. Par conséquent, même s'il est lent, cela ne devrait pas vous gêner.

157
Jamie Schembri

J'ai désactivé Syntastic par défaut et activer/désactiver la vérification des erreurs avec les éléments suivants dans mon fichier .vimrc:

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

Lorsque je dois utiliser la vérification des erreurs, je tape simplement: ctrl-w E

82
gospes

Alternative aux réponses de Jamie et gospes, on peut désactiver complètement le vérificateur en spécifiant le vérificateur comme suit:

let g:syntastic_html_checkers=['']

Assurez-vous également que le syntastic_check_on_open n'est pas défini sur 1, ce qui corrigera la ligne ci-dessus:

let g:syntastic_check_on_open = 0
33
chutsu

Vous pouvez désactiver Syntastic pour toute la session (comme indiqué par Jamie Schembri ), mais s'il ne s'agit que d'un problème avec le "très gros fichier", vous souhaiterez peut-être désactiver uniquement le tampon.

Quelques-uns des fichiers sur lesquels je travaille sont sans aucun doute non conformes à PSR. La plupart fonctionnent très bien. Je cherchais une fonctionnalité permettant de désactiver Syntastic uniquement pour ces fichiers problématiques. Une forme plus simple de la solution ' SyntasticDisableToggle ' décrite par le contributeur principal fonctionne pour moi:

"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()

Comme cela n'affecte pas les autres tampons, je peux continuer à utiliser ce plugin génial pour tout autre fichier (partiellement) conforme que j'ai ouvert.

10
ssteele

Cela ne répond pas directement à la question, mais peut aider au-delà de la session en cours. Si vous avez un fichier que vous devez éditer souvent mais que vous savez que vous voudrez toujours désactiver Syntastic (par exemple, il contient des milliers d’erreurs et vous avez l’intention de ne pas les réparer et que le laisser sur entraîne le ralentissement de l’UI), puis de manière permanente. la liste noire est très pratique.

Pour ce faire, utilisez le syntastic_ignore_files option. C'est caché dans l'aide, mais vous pouvez utiliser des expressions rationnelles avec cette fonctionnalité pour mettre des fichiers en liste noire.

                                                    '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

Les paramètres suivants ont fonctionné pour moi.

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

De la même manière que ceux mentionnés par quelques autres, voici un segment vimrc qui désactivera Syntastic par défaut, mais mappera un bouton (ici, F10) pour vérifier le fichier actuel et utilisera le même bouton comme déclencheur pour désactiver les vérifications. C'est un peu lent, mais ça marche.

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

Une autre option pour désactiver la vérification d’un seul tampon (quel que soit le type de fichier) consiste à utiliser :let b:syntastic_mode="passive". Comme ce n'est pas une bascule, cela fonctionnera même si le tampon est actuellement en mode passif.

Si vous souhaitez désactiver temporairement la vérification de tous les types de fichiers dans tous les tampons, vous pouvez utiliser :bufdo let b:syntastic_mode="passive". J'ai configuré les mappages pour activer/désactiver la vérification de tous les tampons:

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

Ceci est particulièrement utile lorsque vous faites :wqa avec beaucoup de tampons ouverts.

3
Mark Grimes

Merci pour Steven L , je peux ignorer les fichiers de Ansible Roles , maintenant.

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