Si usas habitualmente repositorios SVN ó Git, quizás esta receta te interese: cambia el color de tu prompt si el directorio actual se encuentra bajo control de versiones (sólo SVN ó Git, pero es fácil añadir soporte para otros sistemas de control de versiones). Además, si es un repositorio Git, te añade la rama en la que estás al prompt. Cuando uso Git, muchas veces no recuerdo en qué rama estoy, y continuamente ejecuto git status o git branch para saber en qué rama estoy. Así que tener la rama en el prompt me resulta bastante útil.
La receta está hecha para Debian, y probablemente funcionará sin cambios en cualquier otra distro basada en Debian. Te cambia el prompt, y te pone el nombre del directorio en gris claro. Si es un directorio SVN ó Git, te lo cambia a azul claro, y si es Git, además te lo pone en la forma user@host:directorio|rama|modulo $
Los pasos que tienes que seguir son:
- Descarga el fichero de configuración y cópialo a ~/.vcsawarerc
- Añade . ~/.vcsawarerc a tu fichero .bashrc
Los colores del prompt se controlan con las primeras líneas del fichero de configuración:
1: _novcs='\e[37;40m'
2: _svn='\e[36;40m'
3: _git='\e[36;40m'
4: _normal=$(tput sgr0)
La primera línea es el color para directorios que no estén bajo control de versiones. La última línea devuelve la configuración del color a su valor por defecto. Por ejemplo, mi color por defecto es verde, y el color de _novcs es gris claro. Puedes poner si quieres los colores de SVN y Git diferentes (yo los tengo los dos puestos a azul claro). También puedes cambiar los colores si los que he puesto yo te parecen hortera. El segundo número controla el color del fondo (en este caso, 40 es negro).
22: prompt='${_git}${base_dir/$HOME/~}${_normal}|${ref}|${_git}${sub_dir}${_normal}'
El aspecto del prompt en un directorio bajo Git se controla en la línea 22 del fichero de configuración. El nombre de la rama está en la variable ref, el directorio padre está en base_dir, y el módulo en sub_dir.
27: prompt='${_svn}${PWD/$HOME/~}${_normal}'
El aspecto del prompt en un directorio SVN está en la línea 27, y lo único que hace es cambiar el color del nombre del directorio.
Es importante que cuando pongamos el nombre del directorio lo pongamos de la forma ${variable_directorio/$HOME/~}, porque así se sustituye nuestro la ruta a nuestro home por el símbolo ~.
37: PS1='${debian_chroot:+($debian_chroot)}\u@\h:\[$(__vcs_dir)\]\$ '
El aspecto final del prompt se encuentra en la línea 37. Imita el prompt por defecto en Debian, añadiéndole toda la información que se comenta arriba. Al meter códigos de colores, bash se hace un lío con la longitud del prompt. Por eso se añaden los símbolos \[ y \]. Sin esos símbolos, las líneas muy largas se truncarán antes de llegar al límite de la ventana del terminal. Con esos dos símbolos parece detectar bien ese límite, pero al pasar a la línea siguiente, si borras, a veces se hace un pequeño lío y mezcla las dos líneas. Si logro arreglarlo, pondré la solución aquí.
Por último, todo esto funciona sólo con la shell bash, y necesitas tener instalada la herramienta tput, que está en el paquete ncurses-bin.
