Notxor tiene un blog

Defenestrando la vida


Cambios en mi prompt

Utilizar un prompt más informativo

Llevo ya un tiempo utilizando git para casi todo y a veces me lío yo sólo con las ramas y para saber dónde estoy en cada momento. Normalmente trabajo con emacs, lo que me facilita mucho el trabajo: cuando editas un fichero que está incluido en un repositorio muestra en qué rama y tengo magit para desplegar el contenido de todo el git. Sin embargo, muchas veces me encuentro en un terminal y ahí ando algo perdido... vale, puedo comprobar en qué rama estoy con el comando correspondiente, bien :

> git checkout

o bien:

> git branch

Yo estaba buscando algo más visible, lo encontré ayer y decidí probarlo. Es un script sencillo para generar el prompt. Normalmente lo pones en el fichero ~/.bashrc y es el siguiente:

# utilizar un prompt informativo
PS1="\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]"
PS1="$PS1 \`if [ \$? = 0 ]; then echo -e '\[\033[01;32m\]:)';"
PS1="$PS1 else echo -e '\[\033[01;31m\]:(' \$?; fi\`\[\033[00m\]"
PS1="$PS1 \$(__git_ps1 \"(%s)\")> "

Llevo probándolo desde que lo encontré y me parece que se va a quedar tiempo (por lo menos hasta que me apañe mejor con git). Le he hecho unas mínimas modificaciones, como «desnarigar» el emoticono que muestra y cambiar el último carácter con «>» en lugar del «$».

Ventajas que le veo

Soy de natural torpe y muchas veces me aprendo fórmulas que aplico con prisas y no leo lo que debería leer, como las salidas de los comandos. Ahora voy con mucho cuidado con git y leo muy detenidamente toda salida que produce, pero ya me noto la tendencia a ignorar la salida de algunos comandos que utilizo con asiduidad.

La ventaja principal es que el prompt, cuando entro en un directorio que está gestionado por un repositorio git, muestra entre paréntesis el nombre de la rama activa. Para mí esa es una gran ayuda, especialmente en la gestión de este blog donde gestiono normalmente tres ramas y muchas veces me puedo perder un poco de en cuál estoy.

La otra ventaja es que muestra un emoticono según el último comando haya tenido éxito o no. Si el último comando devuelve «0» mostrará un emoticono verde «:)» y si ha fallado un emoticono rojo «:(». Visualmente me da la pista de si el último comando ha funcionado o no y me obliga a leer la salida.

El inconveniente es que muestra sólo el último directorio local de todo el path. La mayoría de las veces es suficiente y si alguna vez necesito más información siempre tendré a mano el pwd. Esto, no es ventaja ni inconveniente, pues algunas veces te mueves por según que directorios que en consolas pequeñas tiene que saltar de línea. Y al contrario, habrá veces que muestre un directorio src pero vete tú a saber de cuál de todos los proyectos que puedo tener abiertos.

Conclusión

De momento me ha costado poco acostumbrarme a los cambios en el prompt. Me parece un script útil, sobre todo cuando utilizas git y tienes varias ramas de trabajo.


Comentarios

Debido a algunos ataques mailintencionados a través de la herramienta de comentarios, se ha decidido activar un filtro antispam y guardar las direcciones IP con el único objeto de añadir a la lista de bloqueos las que correspondan a spam y otras actividades maliciosas.

Disculpen las molestias.