it-swarm.com.de

Wie kann man ESC [Zeichen entfernen, wenn git diff unter Mac OS X Mavericks verwendet wird?

Seit ich OS X Mavericks installiert habe, gibt das Ergebnis des Befehls git diffESC[xxx-Zeichen wie folgt wieder:

ESC[1mdiff --git a/console/org.linkedin.glu.console-webapp/decorate-grails-methods-plugin/plugin.xml b/console/org.linkedin.glu.console-webapp/decorate-grails-methods-plugin/plugin.xmlESC[m
ESC[1mindex 3b65cf1..0ca5d7e 100644ESC[m
ESC[1m--- a/console/org.linkedin.glu.console-webapp/decorate-grails-methods-plugin/plugin.xmlESC[m
ESC[1m+++ b/console/org.linkedin.glu.console-webapp/decorate-grails-methods-plugin/plugin.xmlESC[m
ESC[[email protected]@ -15,14 +15,14 @@ESC[m ESC[mThe purpose of this plugin is to decorate various grails methods.ESC[m

Dies wurde verwendet, bevor Mavericks installiert wurden. Ich habe keine Ahnung, was anders ist, daher wäre jede Hilfe bei der Fehlersuche sehr zu schätzen.

Beachten Sie, dass der verwendete Pager less ist, denn wenn ich h drücke, erhalte ich Folgendes:

             SUMMARY OF LESS COMMANDS

Commands marked with * may be preceded by a number, N.
Notes in parentheses indicate the behavior if N is given.
40
yan

Haben Sie eine Umgebungsvariable LESS gesetzt? Sie können überprüfen mit:

env | grep LESS

oder:

echo $LESS

Wenn ja, möchten Sie sicherstellen, dass sich die Option R dort befindet. Dadurch können die ANSI-Escape-Sequenzen unbeschadet durchlaufen und im Terminal als Farben dargestellt werden.

Nur als Referenz verwende ich dies:

export LESS=eFRX
51

Das funktioniert:

git config --global core.pager "less -r"
38
FreshPow

Die globale Pager-Konfigurationsoption in git sendet den Ausgabestrom einfach an die Befehle more oder less. Sie können die Escape-Zeichen in dieser Ausgabe entfernen, indem Sie die globale Konfigurationsoption auf Folgendes setzen:

git config --global core.pager "more -R"

Verwenden Sie more weiterhin als Pager oder

git config --global core.pager "less -R"

Um weiterhin less als Pager zu verwenden

Versuchen Sie "weniger -R" (großes "R")

Das hat bei mir funktioniert:

git config core.pager 'less -R'

"weniger -R" vs. "weniger -r"

"-R" (großes R) scheint die sicherere Version von "-r" (kleines R) zu sein. Deshalb bevorzuge ich die große R-Version.

Zitat aus Mann weniger :

-r oder --raw-control-Zeichen
Bewirkt, dass "rohe" Steuerzeichen angezeigt werden. Standardmäßig werden Steuerzeichen in der Caret-Notation angezeigt. Beispielsweise wird ein Steuerelement-A (Oktal 001) als "^ A" angezeigt. Warnung: Wenn die Option -r verwendet wird, kann less nicht das tatsächliche Erscheinungsbild des Bildschirms verfolgen (da dies davon abhängt, wie der Bildschirm auf die einzelnen Steuerzeichentypen reagiert). Daher können verschiedene Anzeigeprobleme auftreten, wie z. B. das Teilen langer Zeilen an der falschen Stelle.

-R oder --ZIEHEN-STEUERZEICHEN
Wie -r, jedoch werden nur ANSI-Escape-Sequenzen "Farbe" in "roher" Form ausgegeben. Im Gegensatz zu -r wird die Bildschirmdarstellung in den meisten Fällen korrekt beibehalten. ANSI "color" Escape-Sequenzen sind Sequenzen der Form:

ESC [... m

wobei das "..." null oder mehr Farbspezifikationszeichen sind. Um das Aussehen des Bildschirms zu verfolgen, wird angenommen, dass ANSI-Farb-Escape-Sequenzen den Cursor nicht bewegen. Wenn Sie die Umgebungsvariable LESSANSIENDCHARS auf die Liste der Zeichen setzen, die eine Farb-Escape-Sequenz beenden können, können Sie weniger davon ausgehen, dass andere Zeichen als "m" ANSI-Farb-Escape-Sequenzen beenden können. Wenn Sie die Umgebungsvariable LESSANSIMIDCHARS auf die Liste der Zeichen setzen, die angezeigt werden können, können Sie weniger davon ausgehen, dass andere Zeichen als die Standardzeichen zwischen dem ESC und dem m angezeigt werden.

1
StackzOfZtuff

Eine andere Alternative besteht darin, das "Einfärben" der Ausgabe von git zu beseitigen, indem man so etwas wie macht

$ git config --global color.ui false

Siehe git help config für Details.

Referenz: unix.stackexchange: Wie färben Sie die Ausgabe von git ein?

0
jhfrontz

Sie können die Option -R Repaint verwenden, um die gesamte gepufferte Eingabe zu entfernen.

export LESS="$LESS -R"
0
skr