Konvertieren Sie die PS1-Eingabeaufforderung von bash in zsh, um die Farbe anzupassen

Das macOS Monterey-System verwendet die zsh-Shell anstelle von bash, und ich möchte diesen bash-Befehl konvertieren, den Sie normalerweise in einer .bash_profileDatei speichern würden

export PS1="\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\$"

in einen zsh-Befehl zum Speichern in einer .zshrcDatei im Home-Verzeichnis.
Hat jemand irgendwelche Vorschläge?

Antworten (2)

Es hat eine Weile gedauert, bis ich das herausgefunden habe, aber ich dachte, ich würde die Antwort hier posten, falls jemand das hilfreich findet. Dies ist das zsh-Äquivalent zur obigen Bash-Eingabeaufforderung

export PS1=$'\033[36m%n\033[m@\033[32m%m:\033[33;1m%~\033[m\$'
zshmüssen Sie die nicht druckbaren Bits nicht identifizieren?
Vielen Dank, dass Sie zurückkommen und dies veröffentlichen.

Mit zshkönnen Sie prozentuale Erweiterungen in der Eingabeaufforderung verwenden, die möglicherweise etwas einfacher zu lesen sind als die abschließenden Escape-Sequenzen:

PROMPT='%F{cyan}%n%f@%F{green}%m:%F{yellow}%~%f$ '

Hier %Fist 'Vordergrundfarbe starten' und %f'Stoppfarbe'. %n, %mund %~werden durch den Benutzernamen, den Hostnamen und das aktuelle Verzeichnis ersetzt. Der vollständige Satz von Ersetzungen ist in der Manpage %aufgeführt .zshmisc

Sie können auch xterm-Farbnummern verwenden , wenn Sie die kleine Menge benannter Farben satt haben:

PROMPT='%F{39}%n%f@%F{119}%m:%F{227}%~%f %F{240}[%*]%f%# '