답변:
를 사용 :SyntasticToggleMode
하면 Syntastic을 수동 모드로 전환 하여 자동 검사를 비활성화 할 수 있습니다. 그런 다음 :SyntasticCheck
대신 실행하여 파일을 확인할 수 있습니다 .
자세한 내용은 :help syntastic-commands
또 다른 참고 사항 : Syntastic이 느리다면 대안으로 에일 을 사용해보십시오 . Syntastic과 달리 비동기식으로 실행되므로 속도가 느려도 방해가되지 않습니다.
:error
또는 Ctrl + Shift 키 / Alt + E를 전환 사이 :SyntasticCheck
와 :SyntasticToggleMode
.
:command Sd SyntasticToggleMode
에서 다음 과 같은 별칭을 만들 수 있습니다. 그런 다음 vi에서 : Sd를 누르면 구문이 비활성화됩니다. 이를 수행하는 방법에 대한 추가 정보 : stackoverflow.com/questions/3878692/aliasing-a-command-in-vim
silent! nmap <F6> :SyntasticToggleMode<CR>
기본적으로 Syntastic을 비활성화하고 .vimrc에서 다음을 사용하여 오류 검사를 활성화 / 비활성화했습니다.
let g:syntastic_mode_map = { 'mode': 'passive', 'active_filetypes': [],'passive_filetypes': [] }
nnoremap <C-w>E :SyntasticCheck<CR>
오류 검사를 사용해야 할 때 다음을 누르십시오. ctrl-w E
.vimrc
뿐만 아니라 추가했습니다 . 그러나 Ctrl-w를 누르면 E Syntastic이 잠시 팝업되고 다시 사라집니다. 무엇이 잘못되었는지 및 / 또는이를 추적하는 방법에 대한 아이디어가 있습니까?
전체 세션에 대해 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
많은 오픈 버퍼로 작업 할 때 특히 유용 합니다.
몇몇 다른 사람들이 언급 한 것과 유사하게, 여기에 기본적으로 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>
Steven Lu 에게 감사드립니다 . 이제 Ansible Roles 파일을 무시할 수 있습니다 .
" ignore files of Ansible Roles.
let g:syntastic_ignore_files = ['\m^roles/']
나는 주로 Rust Ale 지원이 아직 좋지 않기 때문에 Ale과 Syntastic을 사용하고 있습니다. 제 경우에는 vim-plug 패키지 관리자를 사용하고 있는데 자동으로 활성화되지 않도록 설정했습니다. 대신 토글 전략을 사용합니다.
제 경우에는 기본적으로 Ale을 원하고 Rust에는 Syntastic을 원합니다.
vimrc의 플러그인 부분에서이 작업을 수행했습니다.
Plug 'w0rp/ale', { 'on': 'ALEToggle' }
Plug 'vim-syntastic/syntastic', { 'on': 'SyntasticToggleMode' }
나중에 linter를 활성화하기 위해 bind를 설정했습니다. (linter의 mnemoic으로 l을 사용합니다)
nnoremap <leader>l :ALEToggle<CR>
Rust의 경우 동일한 바인딩을 재정의합니다.
au FileType rust noremap <buffer> <leader>l :SyntasticToggleMode<CR>
또한 내 vimrc에서 상태 표시 줄 항목을 제거해야했습니다. 그렇지 않으면 Syntastic이 비활성화 된 상태에서로드 할 때 오류가 발생합니다.
" Syntastic stuff
"set statusline+=%#warningmsg#
"set statusline+=%{SyntasticStatuslineFlag()}
"set statusline+=%*
let g:rustfmt_autosave = 1
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
" Syntastic stuff
문안 인사
let g:syntastic_disabled_filetypes=['html']