Mientras estamos trabajando en nuestra terminal y con git
, sería de mucha utilidad tener siempre a la vista el branch sobre el que estamos trabajando actualmente. Esta característica lo vi en una terminal de Mac OS e inmediatamente quise tenerlo en mi terminal Linux.
Bash
como shell de la terminal.1. Modificación básica
Abrimos el archivo .bashrc
, el cual se encuentra en nuestra carpeta personal (~
), con nuestro editor favorito para poder editarlo (crearlo si no existe). Con gedit
por ejemplo:
$ gedit ~/.bashrc
Agregamos lo siguiente al final del archivo y lo guardamos:
function gitbranch() { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1) /' } PS1="\u@\h:\w \$(gitbranch)\$ "
El código anterior es gracias a Show the current git branch in linux terminal | SauRjk's Portal.
Ahora abramos una nueva terminal y dirijámonos hacia la carpeta donde tengamos un proyecto con git
, por ejemplo:
miusuario@mihost:~ $ cd test miusuario@mihost:~/test (master) $
Como vemos, ya tenemos funcionando la detección del branch que deseábamos.
Expliquemos un poco lo que acabamos de hacer:
-
La función
gitbranch
imprime el branch actual en la que nos encontramos engit
. -
PS1
es la variable que se imprime como prompt de la terminal. Dado que modificamos esta variable al final del archivo, nos aseguramos de sobreescribir el valor anterior delPS1
. Así, si no nos gustan los resultados simplemente borramos lo que escribimos y todo volverá a ser como antes. -
\u
imprime el nombre de usuario,\h
imprime el nombre de la máquina,\w
imprime la carpeta de trabajo actual. -
\$(gitbranch)
ejecuta la funcióngitbranch
que, como dijimos, imprime el branch actual. -
\$
imprime el signo de dolar.
2. Dando color al prompt
Como seguramente habrás notado nuestro nuevo prompt no tiene color por lo que esta sección la dedicaremos a agregarle color a nuestro prompt.
Si no tenemos problemas con el inglés, podemos ir a la siguiente página en la cual aprenderemos todo sobre cómo colorear el prompt: bash:tip_colors_and_formatting - FLOZz' MISC
Para colorear texto en la terminal deberemos agregar la siguiente secuencia \[\e[XXXm\]
antes del texto que queremos colorear, XXX
es el código de color o formato que queremos agregar al texto.
A continuación una lista de códigos de colores:
Color | Código de color de letra | Código de color de fondo |
Negro | 30 | 40 |
Rojo | 31 | 41 |
Verde | 32 | 42 |
Amarillo | 33 | 43 |
Azul | 34 | 44 |
Magenta | 35 | 45 |
Cyan | 36 | 46 |
Blanco | 37 | 47 |
El código 1 representa texto en negrita y el código 0 texto normal.
Con todo esto, el siguiente código resultará en el prompt que se muestra en la imagen del post:
PS1="\[\e[35m\]\u@\h:\[\e[36m\]\w \[\e[1m\]\$(gitbranch)\$\[\e[0;00m\] "
El último código (\[\e[0;00m\]
) reinicia el formato y color del texto para que el texto que sigue no tenga ningún formato. Si no colocamos dicho código, el texto que ingresemos en la terminal tendrá un color cyan.
Con esto hemos terminado este post. Espero que les haya sido útil.
Fuentes:
No hay comentarios:
Publicar un comentario