Wenn ich in Python an Dateien arbeite, verwechsle ich manchmal Tabulatoren mit Leerzeichen und umgekehrt. Gibt es eine Möglichkeit, Vim dazu zu bringen, ein Zeichen für einen Tab anstelle eines Tabs anzuzeigen?
119
Wenn ich in Python an Dateien arbeite, verwechsle ich manchmal Tabulatoren mit Leerzeichen und umgekehrt. Gibt es eine Möglichkeit, Vim dazu zu bringen, ein Zeichen für einen Tab anstelle eines Tabs anzuzeigen?
retab
jedem Speichern der Datei in Leerzeichen konvertiert werden.:h vim-faq
und suchen/invisible
. Das schwer zu merkende Tag ist:h faq-19.8
.Antworten:
Ja, benutze Listchars:
Wenn Sie diese beiden Zeilen in Ihre .vimrc einfügen, werden Registerkarten
>
für die Startposition und-
den Rest der Registerkarte angezeigt .(Anmerkung: Listchars können auch nachgestellte Leerzeichen mit
trail:x
(durchx
das Zeichen ersetzen, das Sie für ein nachgestelltes Leerzeichen verwenden möchten) anzeigen, was ebenfalls nützlich sein kann.)quelle
set listchars=tab:!·,trail:·
, IMHO·
ist viel klarer als ein-
... Sie benötigen eine relativ aktuelle Vim-Version, damit dies auch funktioniert (ich weiß nicht genau, welche, ich denke 7.3.x) ...▸
da es etwas kleiner ist als>
. Gegenwärtig sehe ich einen nachgestellten Leerraum, indem ich das EOL anzeichne (obwohl ich das oben beschriebene versuchen kann). Meine Einstellungen sind:set listchars=eol:¬,tab:▸\
undDie grundlegende Antwort lautet
:set list
, wodurch Registerkarten als angezeigt werden^I
.Ich empfehle jedoch, darüber hinauszugehen. Nur
:set list
ist insofern problematisch, als es nicht möglich ist, die visuelle Ausrichtung auf dem Bildschirm beizubehalten. Zum Beispiel:sieht nicht gut aus, besonders wenn Sie erwarten, dass das
g
vong++
unter dem erstenp
voncpp
(vorausgesetzttabstop=8
) erscheint.Deshalb schlage ich vor , dass in der
.vimrc
Sie so etwas wie setzen:set listchars=tab:␉·
(klar sein, das ist Unicode - Zeichen U + 2409 SYMBOL FÜR Horizontaltabulator gefolgt von U + 00B7 MIDDLE DOT ) .Wie in erläutert
:help listchars
, wird bei einer Einstellung mit zwei Zeichen fürtab:xy
die visuelle Ausrichtung Folgendes beibehalten:Das obige Beispiel würde auf dem Bildschirm wie folgt aussehen:
Persönlich mache ich alles mit meinem
listchars
:eol
benutze ich U + 23CE RETURN SYMBOLtrail
benutze ich U + 2420 SYMBOL FÜR LEERZEICHENnbsp
benutze ich U + 23B5 BOTTOM SQUARE BRACKETDiese Zeichen sind so eindeutig, dass sie im Dokumenttext nur selten wörtlich vorkommen.
Um diese Sonderzeichen in Ihrer Art
vimrc
, Typ , Ctrl-vu23CE
während im Insert - Modus, wie in erläutert:help utf-8-typing
.quelle
set lcs=tab:├─
Registerkarten markieren
Temporäre TabHervorhebung
Für den gelegentlichen Gebrauch können Sie einfach alle Registerkarten in einem Dokument mit dem folgenden Suchbefehl markieren
/
:Um die Hervorhebung zu entfernen, geben Sie einfach
:noh
die:nohlsearch
Abkürzung für „ Keine Beleuchtung“ ein.Permanente TabHervorhebung
Mehr Hervorhebung
Weitere nützliche Hervorhebungsbefehle - einschließlich der Kombination mit nachgestellten Leerzeichen und deren Permanenz - finden Sie im Vim-Wiki .
quelle
:match Error /\t/
, um Registerkarten (oder ein beliebiges anderes Muster) unabhängig vom Suchregister und von hlsearch:match
zu markieren (geben Sie ein , um es zu löschen).Ich persönlich mag die Verwendung des Plugins indentLine , das eine vertikale Linie in Einzugsebenen anzeigt.
Dies ist besonders in Python von großer Hilfe, wo die Einrückung wichtig ist.
Unter anderem wird ein Umschaltbefehl bereitgestellt, der einer Tastenkombination zugeordnet werden kann, sodass Sie ihn deaktivieren können, wenn Sie ihn nicht benötigen.
quelle
Möglicherweise möchten Sie Registerkarten in einem normalen Terminal und in gvim anders anzeigen.
(Der Vollständigkeit halber hinzufügen, falls andere es nützlich finden).
quelle
Am einfachsten ist es, wenn
:set list
Tabulatoren als^I
und Zeilenende als angezeigt werden$
.Ich verwende gerne ein Mapping, das aufruft
um zwischen normaler Anzeige und Listenanzeige umzuschalten.
Zum Beispiel:
Auf diese Weise kann ich schnell überprüfen, ob Probleme mit dem Tabulator oder dem Speicherplatz vorliegen, und dann zu einer regulären Anzeige zurückkehren.
quelle