Einheitliche Antwort:
Wenn Sie Tabs verwenden
Ich würde versuchen, Listchars zu verwenden:
:set listchars=tab:\|\
:set list
Hinweis: Nach dem letzten \
oben steht ein Leerzeichen .
Diese Methode ist gut, da sie die integrierte Unterstützung von Vim verwendet, um solche Dinge zu zeigen.
Beispielausgabe:
| if (1) {
| | func();
| }
Dies funktioniert jedoch nicht für führende Leerzeichen. Wie von @Josh Petrie hervorgehoben, gibt es einen Patch, der für Leerzeichen funktioniert , aber dann müssten Sie Vim neu kompilieren, was über den Rahmen dieser Antwort hinausgeht.
Wenn Sie Leerzeichen verwenden und es Ihnen nichts ausmacht, ein Plugin zu verwenden
Vaibhav Sagar weist darauf hin, dass das Plugin indentLine diese Funktion ausführt.
Installieren Sie es wie gewohnt (siehe Plugins installieren ) und es scheint magisch einfach zu funktionieren ohne weitere Eingaben. Wenn Ihnen die ASCII-Leisten nichts ausmachen, müssen Sie mit Ihren Schriftarten nichts anfangen. Beispielausgabe Ihres Beispiels nach dem Festlegen Ihrer Einrückungseinstellungen und dem Ausführen:IndentLinesReset
45 ¦ var move = function(direction) {
46 ¦ ¦ if(!initialized) { initialize(); }
47
48 ¦ ¦ if(shiftBoard(direction)) {
49 ¦ ¦ ¦ setTimeout(addRandomPiece, 100);
50 ¦ ¦ }
51 ¦ };
Das Plugin benötigt Vim 7.3 oder höher und nutzt die Conceal-Funktion dieser Version. Anstatt Text tatsächlich auszublenden, wird Text durch Balken in der Ansicht ersetzt, nicht jedoch der eigentliche Puffer. Das Ergebnis ist, dass Sie die Balken sehen, diese jedoch nicht in der Datei gespeichert werden (da es sich tatsächlich um Leerzeichen handelt).
Vorbehalt
Beide Methoden setzen "richtig" eingerückten Code voraus. Sie platzieren die Einrückungslinien nicht auf der Ebene der Einrückung, wenn ein "Block" geöffnet wird (was sublim zu sein scheint), sondern sie platzieren Linien in regelmäßigen Abständen, basierend auf Ihren Einrückungseinstellungen. Außerdem werden nur die Balken in Linien angezeigt, in denen tatsächlich Platz vorhanden ist (weshalb die Linie in der vim-Ausgabe unter der ersten Linie if
keine Balken enthält und somit eine visuelle Lücke entsteht).
Eine andere Option, die ich verwende, die nicht genau das ist, wonach Sie gefragt haben, die aber den gleichen Zweck erfüllt, um die Anzeige der Informationen in derselben Spalte zu vereinfachen, besteht darin, Folgendes in Ihren Einstellungen festzulegen
vimrc
:Dies hat den Nachteil, dass Sie Ihren Cursor auf die Spalte bewegen müssen, die Sie sehen möchten, aber Sie erhalten weniger visuelle Unordnung. Normalerweise behalte ich meinen Platz mit dem Cursor, wenn ich mich für Einrückungsstufen interessiere. Mein Weg ist auch in Sprachen wie Python ohne geschweifte Klammern nicht so peinlich.
quelle
Der Vollständigkeit halber gibt es auch das Indent Guides- Plugin, das die Einrückungsstufen durch Abwechseln der Farben von Leerzeichen anzeigt. Es erfordert Version 7.2 oder höher. Da es die Variablen
tabstop
und verwendetshiftwidth
, wird es wahrscheinlich sofort für Ihre Einrückungseinstellungen funktionieren.Sobald das Plugin installiert ist, können Sie einfach
:IndentGuidesEnable
oder verwenden:IndentGuidesDisable
. Wenn Sie Terminal VIM verwenden, beachten Sie, dass gemäß dem HandbuchUm die Farben der Anleitungen für den Screenshot zu ändern, habe ich Folgendes verwendet
Die Farben werden also nicht neu berechnet, wenn die Puffer ausgetauscht werden. Legen Sie dann die Farben mit fest
Wie bei den anderen vorgestellten Lösungen werden nur die Einrückungslinien in Zeilen angezeigt, in denen Leerzeichen vorhanden sind.
quelle
let g:indent_guides_enable_on_vim_startup=1
meine .vimrc hinzu, um dies beim Start zu aktivieren.Ich habe festgestellt, dass das indentLine- Plugin das beste dafür ist. Sie benötigen jedoch eine Schriftart mit den entsprechenden Symbolen. Ich finde, dass Consolas unter Windows und Menlo unter Mac OS X gut funktionieren. Wie oben in der einheitlichen Antwort hervorgehoben, funktioniert dies, indem (ab) die Funktion von vim verwendet wird
conceal
, um vertikale Balken (von der verwendeten Schriftart) an die richtige Stelle zu setzen. Ich bin ziemlich zufrieden mit dieser Lösung, aber der Nachteil ist, dass meine vertikalen Balken Teil der Box-Zeichen-Glyphen sind und sie wie in anderen Editoren zentriert anstatt linksbündig ausgerichtet sind. Ich habe mich daran gewöhnt, aber es kann durch manuelles Patchen Ihrer Schriftart oder mit einer Schriftart wie Fantasque Sans Mono behoben werden (beachten Sie, wie die Screenshots im verknüpften Github-Repo indentLine verwenden).quelle
Das indentLine-Plug-in ist bei nicht kleinen Dateien in der Regel relativ langsam. Dies tritt auf, wenn Sie auf die Eingabetaste klicken, da es etwa eine Sekunde nacheilt.
Ich habe festgestellt, dass vim-indentguides ein schnelleres und optisch ähnliches Plugin ist, das auch Tabulator -Einrückungen von Leerzeichen-Einrückungen unterscheidet.
quelle