Para desempolvar este blog, le he instalado el nuevo tema 2014 que está bien paja. Después le cambiaré la imagen de la portada. Pero por ahora, quiero comentarles sobre un pequeño script que he creado para jugar mejor con Git:
https://github.com/drmad/tmux-git
Este script muestra la rama (‘branch‘) activa del repositorio Git que está en el directorio activo en la barra de estado de Tmux, un “multiplexador” de terminales cliente-servidor muy paja, que además proporciona esa barra de estado.
¿Por qué Tmux? Hay varias soluciones para mostrar el branch activo en el prompt del terminal de Linux, como esta (lo cual es muy útil, para no estar repitiendo git status constantemente), pero la verdad es que me gusta tener el prompt sencillo, sin tantos bombos ni platillos. Entonces, ¿dónde muestro esa información?
Ahi entra a tallar Tmux.
Instalación
Primero necesitas, obviamente, tener instalado tmux y git… Si unas una distro derivada de Debian (como Ubuntu, Mint, ElementaryOS, SteamOS, etc.), basta ejecutar:
sudo apt-get install tmux git
Una vez instalado todo, clonas el proyecto a una carpeta escondida en tu home:
git clone git://github.com/drmad/tmux-git.git ~/.tmux-git
Luego, agregas el script en el fichero de incialización de Bash ejecutando esta línea:
echo "if [[ \$TMUX ]]; then source ~/.tmux-git/tmux-git.sh; fi" >> ~/.bashrc
Y ejecutas el tmux
, Cambias tu directorio por defecto a un repo Git, et voilà:
Si el branch tiene cambios pendientes para ser commiteados, el mensaje aparece resaltado, y con un asterisco al lado:
La configuración se realiza modificado el fichero ~/.tmux-git.conf
, que se crea automáticamente al iniciar el script por primera vez. Dentro hay 2 variables y una función:
TMUX_STATUS_LOCATION
define la posición del estado de git en la barra detmux
. El valor puede serleft
oright
.TMUX_OUTREPO_STATUS
define el contenido del estado cuando no estés dentro de unarepo git
. Por defecto es la configuración actual detmux
.TMUX_STATUS_DEFINITION()
es una función que debe definir el contenido de la variableTMUX_STATUS
, que es mostrado en la barra de estado detmux
. Por defecto muestra[nombre-repo] | branch: [rama][*]
A good example would be to use it for checking out Git branches. A typical Git repository does not have many number of branches, so fzf taking up the entire screen is not ideal. Using