Verwenden Sie den TabSchlüssel in Vim nicht zum manuellen Einrücken. Vim verfügt über zwei Befehle im Einfügemodus zum manuellen Erhöhen oder Verringern des Einrückungsbetrags. Diese Befehle sind Ctrl-Tund Ctrl-D. Diese Befehle beachten Sie die Werte von tabstop, shiftwidthundexpandtab , und halten die richtige Mischung von Leerzeichen und Tabulatoren (maximale Anzahl von Registerkarten gefolgt von notwendigen Anzahl).
Zweitens müssen diese manuellen Einrückungstasten ohnehin nicht sehr oft verwendet werden, wenn Sie die automatische Einrückung verwenden.
Wenn Ctrl-Tstatt Tabstört Sie, können Sie es neu zuordnen:
:imap <Tab> ^T
Sie können auch neu zuordnen Shift-Tab, um die Ctrl-DDeindent auszuführen:
:imap <S-Tab> ^D
Hier sind ^ T und ^ D Literalsteuerzeichen, die als eingefügt werden können Ctrl-VCtrl-T.
Mit dieser Zuordnung können Sie weiterhin Literal Tab in den Puffer eingeben Ctrl-VTab. Beachten Sie, dass Sie in diesem :set expandtabFall , auch wenn diese Option aktiviert ist, ein nicht erweitertes Tabulatorzeichen erhalten.
Ein ähnlicher Effekt wie bei der <Tab>Karte wird mit erzielt :set smarttab, wodurch sich auch die Rücktaste an der Vorderseite einer Linie intelligent verhält.
smarttabWenn im Modus Tabnicht am Zeilenanfang verwendet wird, hat dies keine besondere Bedeutung. Das unterscheidet sich von meiner obigen Zuordnung von Tabzu Ctrl-T, da eine Ctrl-Tirgendwo in einer Zeile verwendete (im Einfügemodus) die Einrückung dieser Zeile erhöht.
Andere nützliche Zuordnungen können sein:
:map <Tab> >
:map <S-Tab> <
Jetzt können wir beispielsweise einige Zeilen auswählen und Tabdrücken, um sie einzurücken. Oder schlagenTab zweimal auf eine Zeile (im Befehlsmodus), um die Einrückung zu erhöhen.
Wenn Sie die richtigen Vertiefung Management - Befehle zur Verfügung , dann wird alles durch die drei Parameter gesteuert: shiftwidth, tabstopund expandtab.
Der shiftwidthParameter steuert Ihre Einrückungsgröße. Wenn Sie vier Leerzeichen einrücken möchten, verwenden Sie :set shiftwidth=4oder die Abkürzung :set sw=4.
Wenn nur dies getan wird, wird der Einzug mit einer Mischung aus Leerzeichen und Tabulatoren erstellt, da dies noexpandtabdie Standardeinstellung ist. Verwenden:set expandtab . Dies führt dazu, dass Tabulatorzeichen, die Sie in den Puffer eingeben, in Leerzeichen erweitert werden und Vim-verwaltete Einrückungen nur Leerzeichen verwenden.
Wenn diese expandtabOption aktiviert ist und Sie Ihre Einrückung über alle geeigneten Vim-Mechanismen verwalten, ist der Wert von tabstopirrelevant. Es steuert, wie Registerkarten angezeigt werden, wenn sie in der Datei vorkommen. Wenn Sie set tabstop=8 expandtabeine feste Registerkarte haben und diese dann mit in die Datei schleichen Ctrl-VTab, wird wie gewohnt eine Ausrichtung zur nächsten 8-Spalten-basierten Registerkartenposition erstellt.