4 votos

¿Cómo puedo convertir este Bash prompt a zsh?

Tengo la siguiente configuración para Bash:

#   Change Prompt
#   ------------------------------------------------------------
    export PS1="________________________________________________________________________________\n| \e[0;34m\u\e[m@\e[0;32m\h\e[m {\e[0;33m\w\e[m} --- \e[0;35m\D{%F %T}\e[m \n| $: "
    export PS2="|  $: "

Intenté reemplazar el \ con % pero no ha funcionado. ¿Qué puedo hacer para que esto funcione en zsh?

Esencialmente, esto acaba pareciendo lo siguiente (menos los colores):

________________________________________________________________________________
| user1@MacBook-Pro {~} --- 2020-09-14 13:17:39
| $:

7voto

Ture Pålsson Puntos 46

Como ya han mencionado otros, hay secuencias incorporadas para fijar los colores, como %F{red} . Si quieres incluir códigos de control de terminales más exóticos, puedes hacerlo así:

PS1=$'%{\e[1m%}%m%{\e[0m%}'

(Esto debería hacer que el prompt muestre su nombre de host en negrita, en la mayoría de los terminales típicos). Hay dos cosas que hay que tener en cuenta aquí

  1. Utilizando el $' ... ' para incluir caracteres de control en la cadena. Esto se describe en el apartado Citas en el zshmisc(1) página de manual. (En otras palabras, esto es lo que hace \e trabajo).

  2. Utilizando %{ ... %} para indicar que la secuencia adjunta no hace que el cursor se mueva.

  3. ( %m se expande al nombre del host. Esto se describe en SECUENCIAS DE LA PISTA en zshmisc(1) Pero probablemente ya lo sabías).

(Muy bien, entonces, tres cosas. Los fans de Monty Python sabrán qué referencia pondría aquí, a los demás les dará igual. :-) )

2voto

Desde https://scriptingosx.com/2019/07/moving-to-zsh-06-customizing-the-zsh-prompt/

Añadir un poco de color o tonos de gris a la indicación puede hacerla más legible. En bash necesitas códigos de escape crípticos para cambiar los colores. zsh proporciona una manera más fácil. Para convertir el directorio de la ruta en azul, puedes usar:

PROMPT='%F{blue}%1~%f %# '

La F significa 'color de primer plano'. zsh entiende los colores negro rojo, verde, amarillo, azul, magenta, cian y blanco. %F o %f restablece el color de texto por defecto.

Hay más detalles sobre esto en la página enlazada (y en man zsh ).

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X