Ich weiß auch nicht was mich da überkommen hat, aber so steht es am Ende meiner .zshrc:
ESC=$(echo -e \e)
remind ~/.reminders | sed -e "s/^/| /;s/| (Reminders for.*):/,---- [ ${ESC}[37;1m1${ESC}[0m ]/;s/Sunrise in.*/${ESC}[0;37m$(ddate | sed -e :a -e "/$/N; s/n/ - ${ESC}[31;1m/; ta")${ESC}[0mn| ${ESC}[0;37m&${ESC}[0m/;s/(today|tomorrow)(| at ..:..)$/${ESC}[31;1m&${ESC}[0m/;s/on [A-Z][a-z]*(| at ..:..)$/${ESC}[0;31m&${ESC}[0m/;$s/.*/&n`----/g"
Wenn jemand eine noch elegantere Lösung hat: immer her damit.
Insbesondere gefällt mir das mit der Variable $ESC nicht, aber ich wollte nicht so viele echos in die Zeile einbauen, und sed scheint auf e, 33 und Konsorten nicht anzusprechen. Das Ergebnis von [Strg-V-Esc] wäre gegangen (also das Zeichen das im Editor aussieht wie „^[„), aber das hätte zur Folge dass das Skript nicht mehr vernünftig druckbar wäre. Und dass bei Ausgabe mit cat bunte Stellen auf dem Bildschirm erscheinen.
Ach ja, die Ausgabe der Zeile sieht übrigens so aus wie in dem Screenshot. Die bunte Einfärbung der einzelnen Termine kommt schon aus der .reminders (kann ich bei Gelegenheit auch nochmal zeigen). Die Zeile hier sorgt für den Rahmen, das diskordische Datum und alle anderen Farben.
Ich bin zwar ein ,,Fan“ und regelm(uml)AEssiger Leser deiner Site, allerdinx ist wohl jeder aktuelle sog. syntahightener Editor (ich z.B. nutze immer noch Xint) total überfordert …
aber so schreibst Du doch net oder … oder musst du ?! Ihhh … viel schlimmer als DOS damals … oder ASM von Hand … kenn ich noch … aus Z80A-Zeiten vom CPC !!! :)
sorry… zu spät gelesen .zshrc … k.A. aber vermute eine Steuerdatei auf ANSI/ASCII-Basis dahinter … helfen kann ich da kaum … wir haben allerdings im LAN noch IO-LANS in Betrieb die hoffentlich ( nie wieder ) abschmieren, da ich Sie mittels vorhandener Terminals und bescheidener Oberfläche konfiggen konnte … und nicht nur über (????) ESC-Sequences (???) … bin Laie … lese aber mit grossem Interesse weiter… Mach weiter … klasse Seite!
mfg Stefan aus Witttingen.
@stefan: Die .zshrc ist fuer die zsh was die .bashrc fuer die bash ist, also ein einfaches Skript das ausgefuehrt wird wenn eine Shell geoeffnet wird. Wenn Du schon DOS erwaehnst: sowas aehnliches wie die AUTOEXEC.BAT (wahrscheinlich wuerde mich an der Stelle jeder UNIXer erschlagen… ).
Der Rest der Datei ist auch wirklich ordentlich und lesbar, nur in der einen Zeile hab ich mich halt ausgetobt. Und bevor ein falscher Eindruck entsteht: nein, man muss in der zsh genauso wenig mit ESC-Sequenzen hantieren wie in jeder anderen Shell auch. Wenn man allerdings eine farbige Ausgabe haben moechte ist das eine Moeglichkeit (und das muesste so auch in jeder anderen Shell funktionieren), und an dieser Stelle ging es mir um Farbe.
Sauberer waere vielleicht der Weg ueber „autoload colors zsh/terminfo“, das waere dann zsh-spezifisch. Vielleicht baue ich die Zeile noch mal in einer sauberen Alternative…
Uebrigens ist das Syntax-Highlighting des Vim (fast) sauber damit klargekommen…