VIM + Syntastic: как отключить проверку?

Я использую Syntastic, который включен для моих HTML файлов. Поскольку у меня есть очень большой файл с включенными шашками "validator w3", GVIM или VIM стали очень медленными, сохраняя файл (: w).

Можно ли временно отключить синтаксис для текущего сеанса?

Ответ 1

Используя :SyntasticToggleMode, вы можете переключать Syntastic в пассивный режим, который отключит автоматическую проверку. Затем вы можете проверить файл, запустив :SyntasticCheck.

Подробнее см. :help syntastic-commands

С другой стороны: если синтаксис для вас медленный, и вы переключились на NeoVim, попробуйте Neomake в качестве альтернативы. В отличие от Syntactic, он работает асинхронно, поэтому даже если он замедляется, это не должно мешать вам.

Ответ 2

Я отключил Syntastic по умолчанию и активировал/отключил проверку ошибок со следующим в моем .vimrc:

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

Когда мне нужно использовать проверку ошибок, я просто ударяю: ctrl-w E

Ответ 3

Альтернатива ответам на Jamie и gospes, можно полностью отключить checker, указав так:

let g:syntastic_html_checkers=['']

Также убедитесь, что параметр syntastic_check_on_open не установлен в 1, что будет противопоставлять указанную выше строку:

let g:syntastic_check_on_open = 0

Ответ 4

Вы можете отключить 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()

Поскольку это не влияет на другие буферы, я могу продолжать использовать этот удивительный плагин для любых других (частично) совместимых файлов, которые я открывал.

Ответ 5

Это напрямую не затрагивает вопрос, но может помочь за пределами текущего сеанса. Если у вас есть файл, который вы должны часто редактировать, но знаете, что вы всегда хотите отключить Syntastic (например, он имеет тысячи ошибок, и вы намерены не исправлять их и оставлять на результат в замедлении пользовательского интерфейса), а затем постоянно черный список очень удобен.

Для этого используйте опцию syntastic_ignore_files. Он спрятан в помощь, но вы можете использовать регулярные выражения с этой функцией в файлах черного списка.

                                                    'syntastic_ignore_files'
Default: []
Use this option to specify files that syntastic should never check.  It 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

Для меня работали следующие настройки.

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

Ответ 7

Другой вариант отключения проверки для одного буфера (независимо от типа файла) заключается в использовании :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 с большим количеством открытых буферов.

Ответ 8

Спасибо за Стивен Лу, теперь я могу игнорировать файлы Ansible Roles.

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