Jak wcięcia jako spacje zamiast tabulacji?

21

Koduję niektóre szablony HTML w plikach JADE. Chcę automatycznie wciskać kod spacjami zamiast tabulacji. Próbowałem shiftwidth=2, tabstop=2ale bez względu na wszystko, nadal wcięcia używają tabulatorów zamiast spacji, co powoduje, że kompilacja JADE generuje błędy.

Jak mogę automatycznie wciąć duże sekcje kodu za pomocą spacji zamiast tabulatorów?

Jan
źródło

Odpowiedzi:

25

Szukasz expandtabopcji. Gdy ta opcja jest ustawiona, spacje są zawsze używane. Możesz umieścić set expandtabw swoim vimrc, aby zawsze mieć tę opcję ustawioną podczas uruchamiania vim. Jeśli chcesz włączyć tę opcję tylko dla określonych języków, zobacz to pytanie . Aby uzyskać pomoc dotyczącą tej opcji, zobacz :help 'expandtab'.

Wiecznie zielone drzewo
źródło
1
dzięki :set expandtabpozwoliło mi użyć spacji zamiast tabulatorów do wcięcia
Jan
Czy to prawda, że tsjest bezużyteczne, gdy etjest ustawione?
iBug
@ iBug Nie, jeśli sam tworzysz plik, ale warto go ustawić, jeśli edytujesz istniejące pliki, które mają w nich zakładki. Więcej informacji na temat wcięć można znaleźć na stronie vim.fandom.com/wiki/Indenting_source_code. Znalazłem go o wiele wyraźniej niż pliki pomocy vima.
EvergreenTree
22

Chcesz rozwinąć.

Ale zwykle jest kilka opcji, które chcesz ustawić jednocześnie.

Jeśli dodasz następujące elementy do pliku ~ / .vimrc

" tabstop:          Width of tab character
" softtabstop:      Fine tunes the amount of white space to be added
" shiftwidth        Determines the amount of whitespace to add in normal mode
" expandtab:        When on uses space instead of tabs
set tabstop     =4
set softtabstop =4
set shiftwidth  =4
set expandtab

Alternatywnie możesz wykonać je ręcznie z trybu normalnego, wykonując je za pomocą „:”

Martin York
źródło