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).