Wie zeigt man in Vim die Ident-Ebene anstelle von Tabulatormarkierungen an?

Wie zeigt man in Vim die Ident-Ebene anstelle von Tabulatormarkierungen an?

Meins .vimrczeigt vertikale Linien, sodass ich Einrückungsblöcken leicht folgen kann, wie so ziemlich jeder einzelne Texteditor/IDE.

if(x == 1){
|   if( y == 1){
|   |   y();
|   }
}

Gibt es eine Möglichkeit, dies nützlicher zu machen und stattdessen die Einrückungsebene anzuzeigen? Ich werde es nicht mit echtem Code verwechseln, da ich dafür bereits eine Farbe mit extrem niedrigem Kontrast verwende.

if(x == 1){
1   if( y == 1){
1   2   y();
1   }
}

Das wäre wirklich hilfreich, um meine Verschachtelungsebene in einigen verrückten Methoden zu finden, die ich bei meiner Arbeit umgestalten muss. Meine aktuelle Problemumgehung besteht darin, horizontale Fenster zu haben, damit ich das obere verlassen kann, wenn die Blöcke verrückt werden, und das untere, wo ich navigiere, um Code zu ändern.

PS: Ich habe bereits Rainbow-Parenthesis-Plugins. Aber die helfen nicht mehr.

Antwort1

Ich habe nicht genug Reputation, um Ihre Frage zu kommentieren, also poste ich stattdessen eine Antwort und werde sie aktualisieren, wenn ich etwas Besseres finde. Hier ist meine „Antwort“:

Es ist nicht genau das, wonach Sie fragen, aber haben Sie schon ":set list" ausprobiert? (":set nolist" zum Deaktivieren). Wenn es sich um harte Tabulatoren handelt (echte Tabulatorzeichen, z. B. ^I), wird ^Ifür jeden Tabulator ein angezeigt. Auf diese Weise können Sie die Anzahl der Tabulatoren für eine bestimmte Zeile sowohl visuell sehen als auch zählen. Deshalb sage ich, dass es nicht genau das ist, wonach Sie suchen, z. B. das Format, das Sie in Ihrer Frage angegeben/vorgeschlagen haben.

Außerdem hatte ich, FWIW, auch die Angewohnheit, zu verwenden, wenn ich mit weniger komplexem Code arbeitete (z. B. Hunderte von LOC und höchstens ein paar Dateien). Als ich anfing, an Projekten mit Tausenden bis Millionen von LOC und Hunderten von Dateien zu arbeiten, begann ich zu verwenden, damit die Klammern ausgerichtet waren (meiner Meinung nach ein bisschen die gleiche Idee, die Sie verfolgen). Dies ist wirklich hilfreich, wenn Sie auch verwenden, um in vim zwischen Klammern zu wechseln. Ich verwende auch die horizontale Fensteraufteilung, da manche Codes manchmal einfach zu lang sind (und nach einer eigenen Funktion schreien usw.).
if(statement){
// code here...
}


if ( (complexStatement) )
{
// code here...
}

%

HTH

Antwort2

Nun, es macht nicht genau das, was Sie wollen, weil dies nicht möglich ist. Aber Sie können meine verwendenDynamische ZeichenPlugin zum Anzeigen der Einrückungsebene in der Randspalte. Festlegen :let g:Signs_IndentationLevel=1und Ausführen :Signs.

In der Hilfe unter erfahren Sie, :h DynamicSigns.txtwas Sie damit tun können.

verwandte Informationen