2009-03-27 12 views

Respuesta

38

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

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

La magia es el \e[0;31m (gire en primer plano rojo) y \e[0m (desactivar atributos de caracteres). Estas se llaman secuencias de escape. Las diferentes secuencias de escape le dan diferentes resultados, desde el posicionamiento absoluto del cursor, hasta el color, hasta la posibilidad de cambiar la barra de título de su ventana, y así sucesivamente.

Para más información sobre las secuencias de escape, ver the wikipedia entry on ANSI escape codes

+1

Muchas gracias, eso ayuda. – Mnementh

+0

Estoy usando PROMPT = '[%!]' En mi .zshrc. ¿Cómo puedes colorearlo? Me ejecuta sin éxito PROMPT = '\ e [0; 31m [%!] \ E [0m' en mi .zshrc. –

+1

@Masi try $ 'string' – balki

189

poner 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, Negro & blanca (de this answer) aunque diferentes computadoras pueden tener diferentes opciones válidas.

Códigos de color envolvente (y cualquier otro carácter no imprimible) con %{....%}. Esto es para que el ajuste del texto funcione correctamente.

+3

Estoy de acuerdo, de lejos es la respuesta superior (por suerte, esta fue el tercer resultado de Google ;) – new123456

+2

no funciona para mí. :( 'zsh: colores: archivo de definición de función no encontrado' – balki

+0

¿Está utilizando ZSH4? No creo que funcione en versiones inferiores a la 4.3.11. Si tiene la última versión quizás no esté utilizando los archivos correctos. –

41

Zsh viene con instrucciones de color integradas. Trate

autoload -U promptinit && promptinit 

y luego prompt -l listas de instrucciones previas disponibles, -p fire el "fuego" del sistema, -s fire conjuntos de TI.

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 
+1

No lo sé. Gracias. –

+1

Más uno para mostrar la forma oficial. – Lokesh

+0

¿Hay alguna manera de colorear todos los temas? Me gusta el indicador de walters pero, wo A uld le gusta en rojo. –

14

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

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

para lograr el mismo resultado que FireDude's answer. Vea el ZSH documentation para más información.

+0

FYI. Acabo de probar en Ubunutu 11.04 y los colores no funcionaron para mí sin 'autocarga -U colores && colors' –

+1

Weird. Funciona para mí en OS X y Ubuntu 10.04. –

+0

@Andrew Marshall Sí, pero es más probable que funcione con 'autocarga '. –

0

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

Después de leer las respuestas existentes aquí, varios de ellos son contradictorios. Probé varios enfoques en sistemas que ejecutan zsh 4.2 y 5+ y encontré que la razón por la cual estas respuestas son contradictorias es porque no dicen a qué versión de ZSH se dirigen. Las diferentes versiones usan una sintaxis diferente para esto y algunas requieren varias autocarga.

Por lo tanto, la mejor opción es probablemente para man zshall y buscar PROMPT EXPANSION para conocer todas las reglas para su instalación particular de zsh. Tenga en cuenta que en los comentarios, cosas como "Uso Ubuntu 11.04 o 10.4 o OSX" no son muy significativos ya que no está claro qué versión de ZSH está usando. Ubuntu 11.04 no implica una versión más nueva de ZSH que ubuntu 10.04. Puede haber varias razones por las que se instaló una versión anterior. De hecho, una versión más nueva de ZSH no implica qué sintaxis usar sin saber qué versión de ZSH es.

3

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: moverán el cursor, lo que dará como resultado una calcomanía fea al tabular (para autocompletar). La solución es simplemente rodear las secuencias de escape con %{FOOBAR%}. Me tomó un tiempo entender esto. Para la 2ª y 3ª soluciones cargando el módulo colors es obligatorio. Para mantener la primera solución legible, solo defina variables para los colores que usa.

Cuestiones relacionadas