Mam autocmd Vima, który usuwa końcowe białe znaki z plików przed zapisem. Chcę tego prawie w 100% przypadków, ale jest kilka typów plików, które chciałbym wyłączyć. Konwencjonalna mądrość polega na umieszczeniu typów plików, z którymi ma działać autocmd, na liście oddzielonej przecinkami, np .:
autocmd BufWritePre *.rb, *.js, *.pl
Ale w tym przypadku byłoby to uciążliwe.
Czy istnieje sposób dopasowania wzorca autocmd do wszystkich plików Z WYJĄTKIEM tych pasujących do wzorca? Nie mogę znaleźć odpowiednika dopasowania NIE w dokumentach.
let b:noStripWhitespace
do plików w sekcji wtyczek typu pliku. Fx, aby wyłączyć usuwanie końcowych białych znaków dla zatwierdzeń git, dodaj linię do~/.vim/ftplugin/gitcommit.vim
.Inny wybór jednej linii:
Następnie możesz zrobić coś, co lubisz dla wszystkich typów plików z wyjątkiem tych na czarnej liście.
źródło
Najłatwiejszym sposobem byłoby ustawienie zmiennej lokalnej dla jednego typu pliku na wartość true. Następnie ustaw automcommand, jeśli ta zmienna jest fałszywa (jeśli jest ustawiona dla wszystkiego innego) lub jeśli w ogóle istnieje (nie ma potrzeby jej ustawiania).
zmieniono przedrostki zmiennych na podstawie komentarza
źródło
Działa to w przypadku
Syntax
autokomend, gdzie wzorzec (<match>
) jest po prostu typem pliku. Nie obejmuje żadnychrst
plików:źródło
Nasz plik konfiguracyjny .vimrc działa tylko raz przy starcie. Więc jeśli teraz umieścisz test if, nie zadziała, ponieważ żaden plik Pythona nie jest obecnie edytowany.
Ale możesz użyć .vimrc, aby ustawić automatyczne zachowanie: coś, co vim zrobi za każdym razem, gdy napotka specjalny warunek. Warunek może być w Twoim przypadku: „Trwa edycja nowego pliku, którego typ to„ python ””. Zobacz: h: au
źródło