Chciałbym mieć różne wcięcia w zależności od typu pliku, nad którym pracuję. Na przykład, pracując nad .c
plikiem chciałbym, aby moje wcięcie składało się z 4 spacji. W .html
plikach chciałbym (muszę) pracować z kartami.
Jak to osiągnąć?
źródło
Chciałbym mieć różne wcięcia w zależności od typu pliku, nad którym pracuję. Na przykład, pracując nad .c
plikiem chciałbym, aby moje wcięcie składało się z 4 spacji. W .html
plikach chciałbym (muszę) pracować z kartami.
Jak to osiągnąć?
Najlepszą metodą jest wprowadzenie tych ustawień ~/.vim/after/ftplugin/<filetype>.vim
.
W przypadku HTML (zakładając, że potrzebujesz zakładek o szerokości 4 znaków):
~/.vim/after/ftplugin/html.vim
setlocal shiftwidth=4
setlocal softtabstop=4
setlocal noexpandtab
Korzystanie z ftplugin jest preferowane przy użyciu komend automatycznych, ponieważ Vim już sam sprawdza typy plików i już próbuje zdobyć odpowiednie ftplugin, więc nie ma powodu, aby wymuszać jeszcze więcej kontroli i ponownie wdrażać koło.
-- edytować --
Zakładając, że masz filetype plugin on
w swoim vimrc
- co powinieneś - Vim spróbuje wykryć typ pliku plików, które edytujesz, a gdy zostanie znaleziony prawidłowy typ pliku i ustawiony dla bufora, spróbuj znaleźć odpowiedni ftplugin w tych standardowych lokalizacjach:
$VIMRUNTIME/ftplugin/html.vim
~/.vim/ftplugin/html.vim
~/.vim/ftplugin/after/html.vim
Wszystko to dzieje się automatycznie, więc jeśli Twój typ pliku zostanie rozpoznany przez Vima, nie ma absolutnie żadnego powodu, aby dodawać jakąkolwiek logikę wykrywania typu pliku: wystarczy dodać ustawienia do właściwej wtyczki ftpl i jesteś dobry.
filetype plugin indent on
w swoimvimrc
.filetype plugin on
jest ustawiony, ścieżka vima zawiera plikiftplugin/<filetype>.vim
iafter/ftplugin/<filetype>/vim
na swojej ścieżce.Możesz to zrobić za pomocą poleceń automatycznych w swoim
.vimrc
.Na przykład mam funkcję,
html_like_mode
która konfiguruje różne rzeczy do edycji plików HTML. W moim.vimrc
mam:To wyłącza rozszerzenie pliku. Możesz także wyłączyć typ pliku, jeśli masz to włączone:
Jak widać, możesz tam zrobić dowolne polecenie. Więc możesz łatwo zrobić a
setlocal shiftwidth 4
dla swoich plików * .c.źródło
augroup
umożliwia grupowanie powiązanych poleceń automatycznych w nazwane grupy. (Zobacz tutaj, aby dowiedzieć się o grupach poleceń automatycznych.) Używamyaugroup
s, aby dodać polecenia automatyczne~/.vimrc
w sposób, który nie doda duplikatu za każdym razem, gdy je pozyskujemy .źródło
Używane autocmd i FileType
źródło