Vorrei mettere il mio ramo corrente git
nel prompt ZSH su più righe. Tuttavia, questo incasina le due linee: mi piacerebbe che si allineino bene.Calcolo della lunghezza della stringa visibile dall'utente per il prompt zsh
┌─([email protected]:s000)─[master *]────────────────
───(~ )─┐
└─(127:15:44)── ──(Sat,May12)─┘
dovrebbe essere:
┌─([email protected]:s000)─[master *]─────────(~ )─┐
└─(127:15:44)── ──(Sat,May12)─┘
Il ramo git
viene afferrato da una funzione oh-my-zsh
, git_prompt_info()
, che mi dà il ramo, lo stato sporco, e un mazzo di pronta-sfugge per colorare le cose bene.
Come faccio a contare i caratteri che saranno visibilmente inseriti nel prompt ZSH - non le sequenze di escape prompt?
'(S)' rende corrispondenza non avido trasformando così “più lunga corrispondenza possibile” in “occorrenza più breve possibile” (senza di esso '{*}' in un modello si trasformerà cosa del genere '% F {blu}% M% F {giallo}% #% f' in solo'% # ', mentre dovrebbe trasformarlo in'% M% # '),' (%%) 'esegue un'espansione immediata sul stringa, seguendo le opzioni PROMPT_ *. Nota: questo metodo dovrebbe essere evitato se la stringa PROMPT contiene un comando con alcuni effetti collaterali: ad esempio, se si desidera utilizzarlo per contare la frequenza con cui viene visualizzato il prompt. La maggior parte delle volte non ne soffrirai. – ZyX
E sì, tutti i flag '(*)' sono descritti nella sezione PARAMETER EXPANSION di 'man zshexpn'. – ZyX
@ZyX Grazie. Ho visto la spiegazione di 'S' nella pagina' zshexpn', ma non ero sicuro di come fosse adattata. – simont