Ich würde gerne meine aktuelle git
Zweig in meine Multi-Linie ZSH Prompt setzen. Dies verwirrt jedoch die beiden Zeilen - ich möchte, dass sie sich gut aneinanderreihen.Zählen Länge der Benutzer sichtbare Zeichenfolge für Zsh-Eingabeaufforderung
┌─([email protected]:s000)─[master *]────────────────
───(~ )─┐
└─(127:15:44)── ──(Sat,May12)─┘
sollte sein:
┌─([email protected]:s000)─[master *]─────────(~ )─┐
└─(127:15:44)── ──(Sat,May12)─┘
Der git
Zweig wird aus einer oh-my-zsh
Funktion packt, git_prompt_info()
, die mir den Ast, schmutzigen Zustand, und eine Reihe von Prompt-entkommt gibt schön Dinge zu färben.
Wie zähle ich die Zeichen, die sichtbar sind eingefügt in die ZSH-Eingabeaufforderung - nicht die Aufforderung Escape-Sequenzen?
'(S)' macht passende nicht-gierige so „längste mögliche Übereinstimmung“ in den „kürzeste mögliche Übereinstimmung“ drehen (ohne es '{*}' in einem Muster wird Sache drehen wie '% F {blau}% M% F {gelb}% #% f' in nur'% #', während es in '% M% #' umgewandelt werden soll, '' (%%) 'führt eine prompte Expansion auf dem Zeichenfolge, folgende PROMPT_ * -Optionen. Hinweis: Diese Methode sollte vermieden werden, wenn die PROMPT-Zeichenfolge einen Befehl mit einigen Nebenwirkungen enthält: Wenn Sie z. B. verwenden möchten, um zu zählen, wie oft die Eingabeaufforderung angezeigt wird. Die meiste Zeit wirst du nicht darunter leiden. – ZyX
Und ja, alle '(*) 'Flags werden im Abschnitt PARAMETER EXPANSION von' man zshexpn' beschrieben. – ZyX
@ ZyX Danke. Ich sah die Erklärung für 'S' auf der Seite' zshexpn', war mir aber nicht sicher, wie es dazu passte. – simont