webentwicklung-frage-antwort-db.com.de

So fügen Sie ein Tabulatorzeichen ein, wenn die Option expandtab in VIM

Wenn ich mich im INSERT-Modus befinde und die Option expandtab aktiviert habe, führt das Drücken der Tabulatortaste zum Einfügen der konfigurierten Anzahl von Leerzeichen.

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

Wissen Sie, wie das geht?

330
devemouse

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

Wenn Sie feststellen, dass Sie dies häufig tun müssen, schlug @ Dee`Kej (in den Kommentaren) die Einstellung vor Shift+Tab einen echten Tabulator einfügen durch

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

Wie von @feedbackloop bemerkt, müssen Sie unter Windows möglicherweise <CTRL-Q> eher, als <CTRL-V>.

485

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

:set expandtab!

oder

:set noet

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

PS: Wenn Sie in .vimrc (Softtabstop) einen Tabulator festgelegt haben, der 4 Leerzeichen entspricht, können Sie auch 8 Leerzeichen festlegen, um einen Tabulator einzufügen, indem Sie stattdessen einmal die Tabulatortaste drücken von zweimal (Softtabstop = 8 einstellen).

29
Jahanzeb Farooq

Aus der Dokumentation zu expandtab :

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

Wenn Sie also eine Zuordnung zum Umschalten der Option paste haben, z.

set pastetoggle=<F2>

du könntest auch <F2>Tab<F2>.

2
Eugene Yarmash