¿Por qué el terminal OS X necesita una fuente manual para mostrar el color?

5

Tengo lo siguiente en mi archivo ~/.bash_profile :

export CLICOLOR=1
export PS1="$FBLU[\#]$RS--$RS{\t}$RS$FWHT\W$RS$FMAG@$RS$FRED\u$RS$FCYN\$$RS$FBLU>>>$RS"
# ANSI color codes
RS="\[3[0m\]" # reset
HC="\[3[1m\]" # hicolor
UL="\[3[4m\]" # underline
INV="\[3[7m\]" # inverse background and foreground
FBLK="\[3[30m\]" # foreground black
FRED="\[3[31m\]" # foreground red
FGRN="\[3[32m\]" # foreground green
FYEL="\[3[33m\]" # foreground yellow
FBLU="\[3[34m\]" # foreground blue
FMAG="\[3[35m\]" # foreground magenta
FCYN="\[3[36m\]" # foreground cyan
FWHT="\[3[37m\]" # foreground white
BBLK="\[3[40m\]" # background black
BRED="\[3[41m\]" # background red
BGRN="\[3[42m\]" # background green
BYEL="\[3[43m\]" # background yellow
BBLE="\[3[44m\]" # background blue
BMAG="\[3[45m\]" # background magenta
BCYN="\[3[46m\]" # background cyan
BWHT="\[3[47m\]" # background white

alias ls="ls -l"
function cd() { builtin cd "$@" && ls -l; }

Cuando abro la terminal, obtengo:

[1]--{08:20:18}~@mike$>>>

lo que prueba que el formateo está funcionando. Sin embargo, se me exige que genere el archivo .bash_profile cada vez que el terminal se ejecute para que los colores se muestren correctamente:

. ~/.bash_profile

¿Por qué sucede esto? ¿Qué puedo hacer para que se muestren los colores cada vez que se ejecuta el terminal?

También estoy ejecutando el estilo de terminal de menta , aunque tengo el mismo problema sin él - ¿Podría esto tener algo que ver con eso?

    
pregunta Mike Roberts 15.06.2015 - 09:29

1 respuesta

8

Las variables de color deben definirse antes del export PS1 . Ahora, cuando llama a $RS en esa línea, esa variable está vacía. Intenta de esta manera:

export CLICOLOR=1

# ANSI color codes
RS="\[3[0m\]" # reset
HC="\[3[1m\]" # hicolor
UL="\[3[4m\]" # underline
INV="\[3[7m\]" # inverse background and foreground
FBLK="\[3[30m\]" # foreground black
FRED="\[3[31m\]" # foreground red
FGRN="\[3[32m\]" # foreground green
FYEL="\[3[33m\]" # foreground yellow
FBLU="\[3[34m\]" # foreground blue
FMAG="\[3[35m\]" # foreground magenta
FCYN="\[3[36m\]" # foreground cyan
FWHT="\[3[37m\]" # foreground white
BBLK="\[3[40m\]" # background black
BRED="\[3[41m\]" # background red
BGRN="\[3[42m\]" # background green
BYEL="\[3[43m\]" # background yellow
BBLE="\[3[44m\]" # background blue
BMAG="\[3[45m\]" # background magenta
BCYN="\[3[46m\]" # background cyan
BWHT="\[3[47m\]" # background white

export PS1="$FBLU[\#]$RS--$RS{\t}$RS$FWHT\W$RS$FMAG@$RS$FRED\u$RS$FCYN\$$RS$FBLU>>>$RS"

alias ls="ls -l"
function cd() { builtin cd "$@" && ls -l; }
    
respondido por el jherran 15.06.2015 - 10:51

Lea otras preguntas en las etiquetas