Convierta el aviso de PS1 de bash a zsh para personalizar el color

El sistema macOS Monterey usa zsh shell en lugar de bash, y quiero convertir este comando bash que normalmente almacenaría en un .bash_profilearchivo

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

en un comando zsh para almacenar en un .zshrcarchivo en el directorio de inicio.
¿Alguien tiene alguna sugerencia?

Respuestas (2)

Me tomó un tiempo darme cuenta de esto, pero pensé en publicar la respuesta aquí en caso de que alguien lo encuentre útil. Este es el equivalente de zsh al indicador de bash anterior

export PS1=$'\033[36m%n\033[m@\033[32m%m:\033[33;1m%~\033[m\$'
zshno requiere que identifique los bits no imprimibles?
Le agradezco que regrese y publique esto.

Puede zshusar expansiones porcentuales en el indicador, que pueden ser un poco más fáciles de leer que las secuencias de escape del terminal:

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

Aquí %Festá 'iniciar color de primer plano' y %f'detener color'. %ny se reemplazan con el nombre de usuario, el nombre %mde %~host y el directorio actual. El conjunto completo de %sustituciones se muestra en la zshmiscpágina del manual.

También puede usar números de color xterm si se cansa del pequeño conjunto de colores con nombre:

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