it-swarm.com.de

Suchen Sie nach einer einfachen Möglichkeit, Text auszurichten

Ich habe ein gemeinsames Problem, nach dem ich nach einer Lösung für ... suche. Ich habe Zeilen mit ähnlichem Text, den ich irgendwie automatisch einfügen möchte, um sie vertikal auszurichten.

x="foo" data="123" y=x
x="b  4" data="12 " y=x
x="baaar4" data="123aaa5" y=x
x="baaaa,4" data="123dddd5" y=x

wird dies

x="foo"     data="123"      y=x
x="b  4"    data="123 "     y=x
x="baaar4"  data="123aaa5"  y=x
x="baaaa,4" data="123dddd5" y=x

Dies ist ein Textproblem. Die Eingabe kommt aus dem Notizblock. Die Ausgabe wird in den Notizblock geschrieben. Dies ist kein Formatierungsproblem. 

50

Notepad ++ hat ein Plugin, das dies für Sie erledigt. Es heißt " Code Alignment ". Damit können Sie den Text vertikal nach Zeichen Ihrer Wahl ausrichten. Sie können es über den Plugin-Manager für Notepad installieren. 

Unten ist ein einfaches Verwendungsszenario. Sie beginnen mit dem folgenden Code und richten sich dann nach "equals" aus. Hierbei handelt es sich um eine integrierte Verknüpfung/einen Befehl für das Plugin.

Initial Code Sample, without alignment

Danach erhalten Sie am Ende Folgendes:

Code after equals alignment

Sie können auch noch einen Schritt weitergehen und den Befehl "Ausrichten durch ..." verwenden, mit dem Sie einen beliebigen Ausrichtungsstring angeben können. Im folgenden Beispiel habe ich das Zeichen "#" gewählt, um meine Kommentare nebeneinander auszurichten. Dies könnte genauso gut eine längere Saite gewesen sein und nicht eine der Länge 1.

Endergebnis unten:

Final result after arbitrary code alignment string

58
Zoran Pavlovic

Wenn Sie nach bestimmten Zeichen ausrichten möchten, verwenden Sie die Notepad ++ - Erweiterung TextFX.

Siehe: TextFX> TextFX-Bearbeitung> Mehrere Zeilen nach (,) ausrichten

Es gibt auch: Mehrere Zeilen nach (=) ausrichten und Mehrere Zeilen nach (Zwischenablage-Zeichen) ausrichten

Hier finden Sie einen Link zu hilfreichen Tipps zur Programmierung.

http://techbrij.com/518/10-notepad-tips-tricks-schnelle-entwicklung

29
iSpardz

ElasticTabstops erledigt genau den Job, den ich gesucht habe, als Sie mit Tabs gearbeitet haben. Ausrichten ohne Hinzufügen von Zeichen (Leerzeichen oder Tabulatoren).

0
Dorian Grv

Ich habe ein Python-Skript erstellt, das mit dem Python-Skript-Plugin in Notepad ++ verwendet werden kann: nppPyAlignColumn

0
DUzun

Sie haben keine Programmiersprache aufgelistet. Hier ist ein C #, das die angeforderte Operation ausführt:

int[] maxLengths = new int[100];
string[][] splitLines = new string[input.Length][];
for (int i = 0; i < input.Length; i++)
{
    splitLines[i] = input[i].Split(' ');
    for (int j = 0; j < splitLines[i].Length; j++)
    {
        maxLengths[j] = Math.Max(maxLengths[j], splitLines[i][j].Length);
    }
}
for (int i = 0; i < splitLines.Length; i++)
{
    for (int j = 0; j < splitLines[i].Length; j++)
    {
        Console.Write(string.Format("0,-" + (maxLengths[j] + 1) + ":G}", splitLines[i][j]));
    }
    Console.WriteLine();
}

Beachten Sie, dass 100 größer oder gleich der Anzahl der Segmente pro Zeile sein muss. Sie können bewirken, dass diese Nummer nicht mit ein wenig Arbeit fixiert wird, wenn Sie möchten.

Grundsätzlich teilt dieser Algorithmus jede Zeile basierend auf Leerzeichen auf und berechnet dann für jedes Teil das Maximum in ein gemeinsames Array. Schließlich durchläuft es alle segmentierten Teile und druckt sie linksbündig mit Leerzeichen auf die größte Größe (plus 1, um den Abstand zwischen den Elementen zu erhalten).

0
Guvante