Używam Syntastic, który jest włączony dla moich plików HTML. Ponieważ mam bardzo duży plik z włączonymi kontrolerami "validator w3", GVIM lub VIM bardzo powoli zapisywał plik (: w).
Czy można tymczasowo wyłączyć syntastic tylko dla bieżącej sesji?
Używam Syntastic, który jest włączony dla moich plików HTML. Ponieważ mam bardzo duży plik z włączonymi kontrolerami "validator w3", GVIM lub VIM bardzo powoli zapisywał plik (: w).
Czy można tymczasowo wyłączyć syntastic tylko dla bieżącej sesji?
Odpowiedzi:
Za pomocą :SyntasticToggleMode
you możesz przełączyć Syntastic w tryb pasywny, co spowoduje wyłączenie automatycznego sprawdzania. Następnie możesz sprawdzić plik, uruchamiając :SyntasticCheck
zamiast tego.
Po więcej, zobacz :help syntastic-commands
Z drugiej strony: jeśli Syntastic działa wolno, rozważ wypróbowanie piwa jako alternatywy. W przeciwieństwie do Syntastic działa asynchronicznie, więc nawet jeśli jest wolny, nie powinien ci przeszkadzać.
:error
Lub Ctrl + Shift / Alt + e przełącza między :SyntasticCheck
i :SyntasticToggleMode
.
:command Sd SyntasticToggleMode
Następnie w vi naciśnij: Sd i wyłączy to syntastic. Więcej informacji o tym, jak to zrobić, znajdziesz tutaj: stackoverflow.com/questions/3878692/aliasing-a-command-in-vim
silent! nmap <F6> :SyntasticToggleMode<CR>
Domyślnie wyłączyłem Syntastic i włączam / wyłączam sprawdzanie błędów z następującym w moim .vimrc:
let g:syntastic_mode_map = { 'mode': 'passive', 'active_filetypes': [],'passive_filetypes': [] }
nnoremap <C-w>E :SyntasticCheck<CR>
Kiedy muszę skorzystać ze sprawdzania błędów, po prostu wciskam: ctrl-w E
.vimrc
. Jeśli jednak naciśnę Ctrl-w E Syntastic wyskakuje na sekundę i znika ponownie. Jakieś pomysły, co się dzieje nie tak i / lub jak to wyśledzić?
Alternatywnie do odpowiedzi Jamiego i gospes, można całkowicie wyłączyć sprawdzanie , określając go w następujący sposób:
let g:syntastic_html_checkers=['']
Upewnij się również, że syntastic_check_on_open
nie jest ustawiona na 1, co spowoduje przeciwdziałanie powyższej linii:
let g:syntastic_check_on_open = 0
Możesz wyłączyć Syntastic dla całej sesji (jak odpowiedział Jamie Schembri ), ale jeśli jest to tylko problem z jednym „bardzo dużym plikiem”, możesz chcieć wyłączyć tylko jeden bufor.
Kilka plików, nad którymi pracuję w mojej pracy, jest beznadziejnie niezgodnych z PSR. Większość działa dobrze. Szukałem funkcji wyłączenia Syntastic tylko dla tych plików powodujących problemy. Prostsza forma rozwiązania „ SyntasticDisableToggle ” przedstawiona przez głównego współtwórcę działa dla mnie:
"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()
Ponieważ nie ma to wpływu na inne bufory, mogę nadal używać tej niesamowitej wtyczki do wszystkich innych (częściowo) zgodnych plików, które otworzyłem.
To nie dotyczy bezpośrednio pytania, ale może pomóc poza bieżącą sesją. Jeśli masz plik, który musisz często edytować, ale wiesz, że zawsze będziesz chciał wyłączyć Syntastic (np. Ma tysiące błędów i nie zamierzasz ich naprawiać, a pozostawienie go spowoduje spowolnienie interfejsu użytkownika), to na stałe umieszczenie na czarnej liście jest bardzo wygodne.
Aby to zrobić, użyj syntastic_ignore_files
opcji. Jest ukryty w pomocy, ale możesz używać wyrażeń regularnych z tą funkcją do czarnych list plików.
'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$']
Poniższe ustawienia zadziałały dla mnie.
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'}
Inną opcją wyłączenia sprawdzania pojedynczego bufora (niezależnie od typu pliku) jest użycie :let b:syntastic_mode="passive"
. Ponieważ nie jest to przełącznik, będzie działać, nawet jeśli bufor jest obecnie w trybie pasywnym.
Jeśli chcesz tymczasowo wyłączyć sprawdzanie wszystkich typów plików we wszystkich buforach, możesz użyć :bufdo let b:syntastic_mode="passive"
. Mam konfiguracje mapowania, aby wyłączyć / włączyć sprawdzanie wszystkich buforów:
nnoremap <leader>sN :bufdo let b:syntastic_mode="passive"<cr>
nnoremap <leader>sY :bufdo unlet b:syntastic_mode<cr>
Jest to szczególnie przydatne w przypadku :wqa
wielu otwartych buforów.
Podobnie jak te wspomniane przez kilku innych, tutaj jest segment vimrc, który domyślnie wyłączy Syntastic, ale mapuje przycisk (tutaj, F10) do sprawdzania bieżącego pliku i używa tego samego przycisku co przełącznik do wyłączania sprawdzania. Jest trochę powolny, ale działa.
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>
Dzięki za Steven Lu , mogę teraz zignorować pliki Ansible Roles .
" ignore files of Ansible Roles.
let g:syntastic_ignore_files = ['\m^roles/']
Używam Ale i Syntastic głównie dlatego, że obsługa Rust Ale nie jest jeszcze zbyt dobra. W moim przypadku używam menedżera pakietów vim-plug, konfiguruję tak, aby nie włączał żadnego z nich automatycznie. Zamiast tego używam strategii przełączania.
W moim przypadku domyślnie chcę Ale i Syntastic for Rust
W części wtyczki vimrc zrobiłem to
Plug 'w0rp/ale', { 'on': 'ALEToggle' }
Plug 'vim-syntastic/syntastic', { 'on': 'SyntasticToggleMode' }
Następnie ustawiłem bind, aby włączyć linter (używam l jako mnemoika dla lintera)
nnoremap <leader>l :ALEToggle<CR>
W przypadku Rusta zastępuję to samo powiązanie
au FileType rust noremap <buffer> <leader>l :SyntasticToggleMode<CR>
Musiałem również usunąć zawartość linii statusu z mojego vimrc, w przeciwnym razie otrzymuję błędy podczas ładowania go z wyłączonym 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
pozdrowienia
let g:syntastic_disabled_filetypes=['html']