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?
Za pomocą :SyntasticToggleModeyou możesz przełączyć Syntastic w tryb pasywny, co spowoduje wyłączenie automatycznego sprawdzania. Następnie możesz sprawdzić plik, uruchamiając :SyntasticCheckzamiast 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ć.
Czy istnieje sposób na utworzenie pojedynczego aliasu lub zmapowanie klucza, aby to przełączyć? Tj. :errorLub Ctrl + Shift / Alt + e przełącza między :SyntasticChecki :SyntasticToggleMode.
To jest bardzo przydatne, dzięki .. Dodałem ten pomysł do mojej konfiguracji. +1
jdt
3
Dodałem to również do moich .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ć?
Anticom
Myślę, że mapowanie nie powinno mieć: SyntasticToggleMode <CR>, usunięcie tego powinno rozwiązać problem @Anticom.
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_filesopcji. 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$']
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 :wqawielu 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>
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
let g:syntastic_disabled_filetypes=['html']
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ć.
źródło
: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-vimsilent! 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:
Kiedy muszę skorzystać ze sprawdzania błędów, po prostu wciskam: ctrl-w E
źródło
.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:
Upewnij się również, że
syntastic_check_on_open
nie jest ustawiona na 1, co spowoduje przeciwdziałanie powyższej linii:źródło
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:
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.
źródło
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.źródło
Poniższe ustawienia zadziałały dla mnie.
źródło
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:Jest to szczególnie przydatne w przypadku
:wqa
wielu otwartych buforów.źródło
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.
źródło
Dzięki za Steven Lu , mogę teraz zignorować pliki Ansible Roles .
źródło
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
Następnie ustawiłem bind, aby włączyć linter (używam l jako mnemoika dla lintera)
W przypadku Rusta zastępuję to samo powiązanie
Musiałem również usunąć zawartość linii statusu z mojego vimrc, w przeciwnym razie otrzymuję błędy podczas ładowania go z wyłączonym Syntastic
pozdrowienia
źródło