Terminal tools - tmux

Antes de entrar a instalarlo, primero debemos saber que tmux “es un multiplexor de terminal para sistemas tipo UNIX, similar a GNU Screen o Byobu que permite dividir una consola en múltiples secciones o generar sesiones independientes en la misma terminal”, lo que podríamos entendercomo “tener varias terminales en una sola” (una definición sobresimplificada de lo que tmux hace).

Antes de seguir con apartados como la instalación y shortcuts, primero deberemos entender algunos conceptos importantes.

En el manual de OpenBSD podrás encontrar información detallada de la herramienta.

Gran parte de la información que presento es sacada de esta playlist de Learn Linux TV.

Sesiones

Una sesión en tmux es una colección de ventanas y paneles. Es una instancia separada de tmux que puedes crear para realizar un conjunto específico de tareas o proyectos. Cuando inicias tmux, automáticamente se crea una sesión, pero puedes tener múltiples sesiones en ejecución simultáneamente. Las sesiones te permiten desconectar de una sesión y volver a ella más tarde.

Ventanas

Dentro de una sesión, puedes tener múltiples ventanas. Cada ventana representa una vista separada de tmux con su propio conjunto de paneles. Las ventanas son útiles para organizar diferentes tareas o contextos dentro de una misma sesión.

Paneles

Los paneles son divisiones dentro de una ventana que te permiten ver y trabajar con diferentes áreas de la misma sesión al mismo tiempo. En otras palabras, en una única ventana, puedes dividir la visualización en múltiples paneles, cada uno de los cuales puede contener una terminal o una aplicación diferente. Esto es especialmente útil para monitorear la salida de un proceso mientras interactúas con otra terminal o aplicación sin tener que cambiar entre ventanas.

Instalacion

Este proceso varía en función de la distribución que tengas, por lo que te sugiero seguir los pasos para tu sistema en específico (información que encontraras en la documentación). En cualquier caso, introducir el comando <package manager> <install command> tmux debería funcionará para la mayoría.

En el caso de Arch Linux sería pacman -S tmux.

Comandos

  • tmux new -s <name>: comienzar una nueva sesión con el nombre especificado.

  • tmux list-sessions: listar todas las sesiones.

    tmux ls.

  • tmux attach: conectarse a la última sesión en la que estuvimos.

    tmux a.

  • tmux a -t <session name>: conectarse a una sesión en específico.

  • tmux kill-session -t <session number>: cerrar la sesión especificada.

Shortcuts

  • Ctrl + b: poner a tmux a la escucha.

    Por suerte este atajo puede ser modificado.

  • d: desconectarse de la sesión.

  • s (session): listar todas las sesiones.

  • $: renombrar la sesión.

    También podemos usar el comando tmux rename-session para este propósito.

    Será útil para reconocer una sesión cuando las listamos.

  • ( ): ir a la siguiente o anterior sesión.

  • c (create): crear una ventana.

    También podemos usar el comando tmux new-window para este propósito.

  • n: ir a la siguiente ventana.

  • p: ir a la anterior ventana.

  • ,: renombrar la ventana actual.

    También podemos usar el comando tmux rename-window <new name> para este propósito.

  • <number>: cambiar de ventana rápidamente.

    La enumeración comienza desde $0$ (por defecto), por lo que cambiar a esa ventana podría ser algo molesto.

  • &: cerrar ventana.

  • %: crear un panel (haciendo la división vertical).

  • ": crear un panel (haciendo la división horizontal).

  • q: mostrar los números de los paneles.

  • q<panel number>: ir a un panel específico.

  • z: hacer zoom en un panel.

    Para quitar el zoom también, se hace la misma combinación.

  • !: convertir un panel en una ventana (estando en el panel).

  • <arrow>: cambiar el panel activo.

  • <arrow>: cambiar el tamaño de los paneles (combinación para que esté en escucha).

  • x: cerrar el panel activo.

  • :: entrar al modo de comandos.

  • :setw synchronize-panes: sincronizar paneles.

  • [: Para entrar en modo “vi”.

    Después de haber puesto el comando :setw -g mode-keys vi.

tmux cheat sheet.

Configuración

Como es de esperarse, podemos crear un archivo de configuración para tmux (touch ~/.tmux.conf). También está la posibilidad de hacer cambios no persistentes a través del modo comandos de tmux, poniendo directamente la opción para “previsualizarla”.

Este post contiene la configuración de Learn Linux TV.