2016-10-13 5 views
0

Bei der Verwendung von Fisch Shell in einem Terminal-Emulator (wie Terminator) zusammen mit einem Befehl, der viel Text ausgibt, könnte es nützlich sein, einige Farbcodierung auf der Ausgabe zu erhalten. Ich weiß, dass ein Skript der Ausgabe Farbcodeinformationen wie "grep --color = auto" hinzufügen kann. Ich denke, es ist möglich, das Fischterminal so zu modifizieren, dass es die Ausgabe scannt und an bestimmten Stellen hinzufügt.Fisch Shell benutzerdefinierte Funktion für die Ausgabe Text Färbung

Was ich tun möchte ist, dass der Text "Fehler" in der Ausgabe von einem Skript immer rot markiert ist und dass "Warnung" immer gelb markiert ist. Weiß jemand, ob das möglich ist, indem man Funktionsdateien in die ~/.config/fish/Funktionen dir oder ähnliches einführt?

+0

FWIW, Wenn Sie sich für eine Lösung von faho entscheiden, können Sie das Problem vermeiden, dass die Daten, die an eine Funktion gesendet werden, zwischengespeichert werden, indem ein Skript erstellt wird. ein externer Befehl, der mit der Shebang-Linie abgeschlossen ist. Aber wie gesagt, das ist wirklich der falsche Weg, um das Problem zu lösen. –

Antwort

3

Dies ist im Grunde eine Schichtverletzung. Normalerweise geht die Ausgabe von externen Befehlen nicht durch die Shell zurück. Es geht direkt zum Terminal.

Auch alles, was Sie hier tun, hat das Potenzial, die Ausgabe zu verlangsamen. (Und wegen Fisch Ausgabe #1396, kann das ziemlich extrem sein).

Das heißt, es ist möglich, wenn man immer Rohr an eine Funktion wie diese es

function colorstuff 
    while read -l input 
     switch $input 
      case "*error*" 
       set_color red 
       echo $input 
      case "*warning*" 
       set_color yellow 
       echo $input 
      case "*" 
       set_color normal 
       echo $input 
     end 
    end 
    set_color normal 
end 

verwenden wie somecommand | colorstuff. (Und vielleicht hinzufügen ^&1, wenn Sie auch stderr gefärbt haben möchten)

In meinen Tests verursacht dies eine spürbare Verlangsamung, und auch mit diesem Problem behoben wird es immer noch langsamer, da es jede einzelne Zeile übereinstimmen muss.

Wirklich, die wahre Lösung ist für welches Werkzeug Sie sich selbst zu färben, da es weiß, was die Ausgabe bedeutet. Alles, was Sie tun können, ist nach Keywords suchen.

0

Für den allgemeinen Farbausdruck der Ausgabe habe ich das grc Plugin zu Tackle für genau diesen Zweck hinzugefügt.

Verwandte Themen