[vim] VIM + Syntastic : 검사기를 비활성화하는 방법은 무엇입니까?

내 HTML 파일에 대해 활성화 된 Syntastic을 사용하고 있습니다. “validator w3″검사기가 활성화 된 매우 큰 파일이 있기 때문에 파일 (: w)을 저장하는 동안 GVIM 또는 VIM이 매우 느려졌습니다.

현재 세션에 대해서만 일시적으로 syntastic을 토글 할 수 있습니까?



답변

를 사용 :SyntasticToggleMode하면 Syntastic을 수동 모드로 전환 하여 자동 검사를 비활성화 할 수 있습니다. 그런 다음 :SyntasticCheck대신 실행하여 파일을 확인할 수 있습니다 .

자세한 내용은 :help syntastic-commands

또 다른 참고 사항 : Syntastic이 느리다면 대안으로 에일 을 사용해보십시오 . Syntastic과 달리 비동기식으로 실행되므로 속도가 느려도 방해가되지 않습니다.


답변

기본적으로 Syntastic을 비활성화하고 .vimrc에서 다음을 사용하여 오류 검사를 활성화 / 비활성화했습니다.

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

오류 검사를 사용해야 할 때 다음을 누르십시오. ctrl-w E


답변

Jamie 및 gospes 답변 대신 다음과 같이 검사기 를 지정하여 검사기를 완전히 비활성화 할 수 있습니다 .

let g:syntastic_html_checkers=['']

또한 syntastic_check_on_open위의 줄에 대응하는 1로 설정되지 않았 는지 확인하십시오 .

let g:syntastic_check_on_open = 0


답변

전체 세션에 대해 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()

이것은 다른 버퍼에 영향을 미치지 않기 때문에 내가 열어 놓은 다른 (부분적으로) 호환되는 파일에 대해이 멋진 플러그인을 계속 사용할 수 있습니다.


답변

이것은 질문을 직접적으로 다루지는 않지만 현재 세션 이후에 도움이 될 수 있습니다. 자주 편집해야하지만 항상 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$']


답변

다음 설정이 저에게 효과적이었습니다.

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


답변

파일 유형에 관계없이 단일 버퍼 검사를 끄는 또 다른 옵션은 :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많은 오픈 버퍼로 작업 할 때 특히 유용 합니다.