Standardmäßig werden Tabulatorzeichen in cmd mit einer Länge von 8 Zeichen geschrieben. Kann ich das auf irgendeine Weise in etwas Kleineres ändern?
Wir verwenden Tabulatoren zum Einrücken in unseren Code. Die diff-Ausgabe von Mercurial (dh hg diff
) ist also ziemlich schlecht lesbar.
windows
command-line
Gieron
quelle
quelle
Antworten:
In einer Batch-Datei können Sie durch zeilenweise Ersetzung von Zeichenfolgen Tabulatoren durch vier Leerzeichen ersetzen:
Die EnableDelayedExpansion ermöglichte die Verwendung von
!
s und die Änderung von Variablen innerhalb derfor
Schleife.Durch das Einfügen von Code in diese Antwort wurden anscheinend drei Leerzeichen durch die Registerkarte ersetzt. Stellen Sie beim Kopieren in eine Stapeldatei sicher, dass sich zwischen
:
und=
in derecho
Zeile ein tatsächliches Tabulatorzeichen befindet.Wenn der Befehl einfache Anführungszeichen enthält, die Sie ausführen müssen (ich kenne die vollständige Syntax von nicht
hg diff
), müssen Sie ihn mit Anführungszeichen umgeben und aktivierenusebackq
. Das bedeutet, dass Sie in dem auszuführenden Befehl keine Anführungszeichen verwenden können. Wähle eins.Von hinten zitierte Version:
quelle
hg diff
... coole Lösung.usebackq
ist nur erforderlich, wenn der auszuführende Befehl quotes ('
) selbst enthält. Wenn er in seinem Befehlusebackq
einfache Anführungszeichen verwenden muss , ist diese Option erforderlich, und Anführungszeichen sollten anstelle von Anführungszeichen um den Befehl verwendet werden. Aber das bedeutet, dass im Befehl keine Anführungszeichen verwendet werden können ... hmm ... wähle eins aus;)Ich habe keine Ahnung, wie Sie tun können, was Sie wollen, aber Sie könnten:
Leiten Sie die Ausgabe in eine Datei um und lesen Sie die Datei mit einem Texteditor wie Notepad ++.
c: \> hg diff> file.txt
quelle
Ich bin nicht sicher, woher diese 8 Zeichen für Sie kommen, aber ich hatte immer 4 Zeichen, wenn ich eine Textdatei aus cmd.exe mit TYPE oder COPY eingab. Es kann sein, dass die Ausgabe doppelte Tabs enthält. Entsprechend dem traditionellen DOS beträgt die Breite eines Tabulators 4 Zeichen. Es gibt VIELE Befehlszeilentools, die sich darauf stützen. Dies ist der wahrscheinlichste Grund, warum es meines Wissens nach keine Möglichkeit gibt, dies zu ändern (falls vorhanden) es wäre irgendwo in der Registrierung, aber ich habe es nie gesehen), es sei denn, Sie dekompilieren / kompilieren cmd.exe neu. Mein Vorschlag ist, ein Skript oder ein Konsolentool zu schreiben, das die Ausgabe auf dem Konsolenbildschirm für Sie druckt und die Registerkarten so interpretiert, wie Sie möchten, oder ein Tool wie dieses zu finden, das bereits irgendwo erstellt wurde.
quelle
cmd.exe
Windows 7 getestet . Die Tab-Größe betrug 8 Zeichen. Ich erinnere mich nicht, dass Windows, OS / 2, DOS (oder CP / M) jemals eine Standardgröße von etwas anderem als 8 hatten.Dies ist keine allgemeine Lösung, aber da Sie zufällig nach 'hg diff' gefragt haben und es zufällig in meiner Google-Abfrage angezeigt wurde .. :)
Die Art und Weise, wie ich das Tab-Problem für diesen speziellen Fall löste, war die Verwendung von less.exe. Ich habe es eigentlich schon benutzt, aber es brauchte nur einen zusätzlichen Parameter. Hier ist ein bisschen von meinem hgrc (vereinfacht):
quelle