Wie rücke ich Leerzeichen anstelle von Tabulatoren ein?

21

Ich codiere einige HTML-Vorlagen in JADE-Dateien. Ich möchte Code automatisch mit Leerzeichen anstelle von Tabulatoren einrücken. Ich habe es versucht shiftwidth=2, tabstop=2aber egal was passiert, es werden immer noch Tabulatoren anstelle der Leertaste eingerückt, wodurch die JADE-Kompilierung Fehler verursacht.

Wie kann ich große Codeabschnitte mithilfe von Leerzeichen anstelle von Tabulatoren automatisch einrücken?

John
quelle

Antworten:

25

Sie suchen die expandtabOption. Wenn diese Option aktiviert ist, werden immer Leerzeichen verwendet. Sie können set expandtabIhre vimrc so einstellen, dass diese Option beim Start von vim immer gesetzt ist. Wenn Sie diese Option nur für bestimmte Sprachen aktivieren möchten, lesen Sie diese Frage . Hilfe zu dieser Option finden Sie unter :help 'expandtab'.

Immergrüner Baum
quelle
1
Dank :set expandtaberlaubte mir, Leerzeichen anstelle von Tabulatoren für Einrückungen zu verwenden
John
Ist es wahr, dass tses nutzlos ist, wenn etfestgelegt wird?
iBug
@iBug Nicht, wenn Sie die Datei selbst erstellen, aber es kann nützlich sein, sie festzulegen, wenn Sie vorhandene Dateien mit Registerkarten bearbeiten. Weitere Informationen zum Einrücken finden Sie unter vim.fandom.com/wiki/Indenting_source_code. Ich fand es viel klarer als die Hilfedateien von vim.
EvergreenTree
22

Sie möchten expandtab.

In der Regel möchten Sie jedoch mehrere Optionen gleichzeitig festlegen.

Wenn Sie Ihrer ~ / .vimrc-Datei Folgendes hinzufügen

" 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

Alternativ können Sie diese manuell im normalen Modus ausführen, indem Sie mit ':' fortfahren.

Martin York
quelle