¿Cómo puedo cambiar el color de mi pronta en zsh (diferente de texto normal)?

StackOverflow https://stackoverflow.com/questions/689765

  •  22-08-2019
  •  | 
  •  

Pregunta

Para reconocer mejor el inicio y el fin de la producción en una línea de comandos, que quieren cambiar el color de mi sistema, por lo que es visiblemente diferente de la salida de los programas. Como utilizo zsh, alguien me puede dar una pista?

¿Fue útil?

Solución

Aquí hay un ejemplo de cómo configurar un indicador rojo:

PS1=$'\e[0;31m$ \e[0m'

La magia es la \e[0;31m (gire en primer plano rojo) y \e[0m (apagar atributos de caracteres). Estos se denominan secuencias de escape. Las diferentes secuencias de escape que dan resultados diferentes, desde la posición del cursor absoluta, al color, al ser capaz de cambiar la barra de título de la ventana, y así sucesivamente.

Para más información sobre secuencias de escape, ver la entrada de Wikipedia sobre los códigos de escape ANSI

Otros consejos

Ponga esto en ~/.zshrc:?

autoload -U colors && colors
PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%~ %{$reset_color%}%% "

Colores admitidos:
Rojo, azul, verde, cian, amarillo, magenta, Blanco y Negro (de este responder ), aunque diferentes computadoras pueden tener diferentes opciones válidas.

códigos de color Surround (y cualquier otros caracteres no imprimibles) con %{....%}. Esto es para el ajuste de texto para que funcione correctamente.

Además, aquí es cómo se puede conseguir esto para trabajar con el directorio de poda de aquí .

PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%(5~|%-1~/.../%3~|%4~) %{$reset_color%}%% "

Zsh viene con indicaciones de color incorporado. Trate

autoload -U promptinit && promptinit

y luego prompt -l enumera los mensajes disponibles, -p fire las previsualizaciones el "fuego" del sistema, que establece -s fire.

Cuando esté listo para agregar un indicador de añadir algo como esto debajo de la línea de carga automática arriba:

prompt fade red

No creo que se necesita la autoload -U colors && colors más y simplemente se puede hacer:

PS1="%{%F{red}%}%n%{%f%}@%{%F{blue}%}%m %{%F{yellow}%}%~ %{$%f%}%% "

para lograr el mismo resultado que FireDude de respuesta . Vea la ZSH documentación para obtener más información.

He encontrado que, con zsh5 (la opción por defecto en Debian Jessie), todas estas soluciones funciona:

  • $'\e[00m
  • $fg[white]
  • $fg{white}

Ahora, tienen un problema: que se mueva el cursor, lo que resulta en la etiqueta fea cuando la tabulación (por finalización automática). La solución es simplemente para rodear las secuencias de escape con %{FOOBAR%}. Me tomó un tiempo para resolver esto. Para las soluciones de 2º y 3er módulo de carga colors es obligatorio. Para mantener la primera solución fácil de leer, simplemente definir variables para los colores que utiliza.

hombre zshall y búsqueda de EXPANSIÓN RÁPIDA

Después de leer las respuestas existentes aquí, varios de ellos son contradictorios. He intentado los diversos enfoques en sistemas que ejecutan zsh 4.2 y 5+ y encontró que la razón de que estas respuestas están en conflicto es que no dicen qué versión de ZSH están dirigidas a. Diferentes versiones usan la sintaxis diferente para esto y algunos de ellos requieren diferentes autoloads.

Por lo tanto, la mejor apuesta es, probablemente, para el hombre y la búsqueda de zshall EXPANSIÓN RÁPIDA para averiguar todas las reglas para su instalación particular de zsh. Tenga en cuenta en los comentarios, cosas como "Yo uso Ubuntu 11.04 o 10.4 o OS X" no son muy significativos ya que no está claro qué versión de ZSH que está utilizando. Ubuntu 11.04 no implica una nueva versión de ZSH de Ubuntu 10.04. Puede haber cualquier número de razones por las que se ha instalado una versión anterior. Para el caso de una versión más reciente de ZSH no implica el que la sintaxis para usar sin saber qué versión de ZSH que es.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top