zsh-Handler wie command_not_found_handler ()

688
romeovs

Ich möchte die zsh-Ausgabe formatieren.

zB für unbegründete Funktionen habe ich jetzt:

function command_not_found_handler() 

die roten Text und unterstrichen zurückgibt ???.

Ich habe dies für die gemacht command_not_found_handlerund möchte die gleiche Logik auf andere Fehlerausgaben anwenden, zB:

zsh: bad pattern: echo[ 

und

zsh: correct 'ehco' to 'echo' [nyae]? 

Ich kann jedoch anscheinend nicht die Namen der richtigen Handler finden. Gibt es sie überhaupt als Handler? Wenn nicht, gibt es einen allgemeineren Ansatz zum Ändern der Warnungs- / Fehler- / Informationsausgabe in zsh?

Ein allgemeinerer Ansatz wäre schön, so dass Fehler aus anderen Programmen auch das gleiche Format haben würden. z.B

cd: no such file or directory: no/dir 

vielleicht Standardfehlerausgabe ändern (ich weiß nicht, ob das überhaupt Sinn macht, ich bin wirklich müde ...)

1

1 Antwort auf die Frage

1
romeovs

Ok, ich habe es selbst herausgefunden.

Mit dem c-Skript hier, und ein wenig modifiziert, bekam ich, was ich brauchte.

Die Modifikation, die teilnahm, war folgende: Weil ich ???vor jedem Fehler unterstrichen wollte, änderte ich die Schleife in Zeile 107 zum Drucken ??? bevor Sie den Rest des Fehlers durchlaufen. Dies war wie folgt:

 if (buffer[0] == 27) dontcol = 1; if (buffer[0] == '\n') dontcol = 0; if (!dontcol) fputs(begstr, stdout); fputs("\0033[4m??? \033[0m", stdout);  putchar(buffer[0]); if (!dontcol) fputs(endstr, stdout); for (i = 1; i < n; i++) { if (buffer[i] == 27) dontcol = 1; if (buffer[i] == '\n') dontcol = 0; if (!dontcol) fputs(begstr, stdout); putchar(buffer[i]); if (!dontcol) fputs(endstr, stdout); }