386 Stimmen

Wie fügt man ein Tabulatorzeichen ein, wenn die Option expandtab in Vim aktiviert ist?

Wenn ich im Einfügemodus bin und die expandtab Option eingeschaltet ist, drücken Sie Tab führt dazu, dass die konfigurierte Anzahl von Leerzeichen eingefügt wird.

Aber gelegentlich möchte ich ein Tabulatorzeichen einfügen.

Wissen Sie, wie man das macht?

569voto

Michael Anderson Punkte 65535

Sie können verwenden <CTRL-V><Tab> im "Einfügemodus". Im Einfügemodus, <CTRL-V> fügt eine wörtliche Kopie des nächsten Zeichens ein.

Wenn Sie dies häufig tun müssen, schlug @Dee`Kej (in den Kommentaren) vor, die Shift + Tab um eine echte Registerkarte mit dieser Zuweisung einzufügen:

:inoremap <S-Tab> <C-V><Tab>

Außerdem müssen Sie, wie von @feedbackloop erwähnt, unter Windows möglicherweise die Taste <CTRL-Q> statt <CTRL-V> .

44voto

Jahanzeb Farooq Punkte 1858

Sie können die Option expandtab in Vim wie folgt deaktivieren:

:set expandtab!

oder

:set noet

PS: Und setzen Sie sie zurück, wenn Sie mit dem Einfügen von Tabs fertig sind, mit "set expandtab" oder "set et"

PS: Wenn Sie tab in .vimrc auf 4 Leerzeichen gesetzt haben (softtabstop), können Sie es auch auf 8 Leerzeichen setzen, damit Sie einen Tabulator einfügen können, indem Sie die Tabulatortaste einmal statt zweimal drücken (set softtabstop=8).

2voto

Eugene Yarmash Punkte 130008

Aus der Dokumentation über expandtab :

Um einen echten Tabulator einzufügen, wenn expandtab eingeschaltet ist, verwenden Sie CTRL-V<Tab> . Siehe auch :retab y ins-expandab .
Diese Option wird zurückgesetzt, wenn die paste wird gesetzt und wiederhergestellt, wenn die Option paste Option zurückgesetzt wird.

Wenn Sie also ein Mapping für das Umschalten der paste Option, z.B.

set pastetoggle=<F2>

Sie könnten auch Folgendes tun <F2>Tab<F2> .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X