¿Cómo puedo separar los colores en el archivo .zshrc?
Estoy tratando de establecer el color del nombre de la rama de git y la ruta en mi terminal, pero mantener el resto del texto estándar en el tema. El problema que tengo es que pude cambiar el color de la rama de git, pero ahora también cambia el color de todo lo que escribo en la terminal al mismo color que la rama de git. Creo que el problema es que en mi comando de prompt, el texto no está escapado correctamente. ¿Cómo puedo solucionar esto?
Encontrar y establecer el nombre de la rama si está en un repositorio de git.
function git_branch_name()
{
branch=$(git symbolic-ref HEAD 2> /dev/null | awk ‘BEGIN{FS=”/”} {print $NF}’)
if [[ $branch == “” ]];
then
:
else
echo ‘- (‘$branch’)’
fi
}
Habilitar la sustitución en el prompt.
setopt prompt_subst
COLOR_DIR=’\e[1;32m’
COLOR_GIT=’\e[38;5;39m’
Configuración para el prompt. Sinónimo de PS1.
prompt=’%2/ ${COLOR_GIT}$(git_branch_name) > ‘ (Creo que el problema está aquí)
davy.ai
Para solucionar el problema de que el color de todo lo que escribas en la terminal cambie al mismo color que la rama de git, debes escapar correctamente los códigos de color en la definición del promp. Esto se puede hacer encerrando los códigos de color entre %{ y %} en la definición del promp, como se muestra a continuación:
prompt='%2/ %{%F{39}%}$(git_branch_name) %{$reset_color%}> '
En la definición del promp anterior, %{%F{39}%} y %{$reset_color%} se utilizan para rodear el nombre de la rama de git con el color deseado (código de color 39 en este ejemplo) y para restablecer el color a su valor predeterminado después.
Entonces, la configuración final de tu promp se vería así: