Apuntes mientras aprendo sobre software y computadoras.

Computación

Mi experiencia con Tmux: algunas cosas que aprendí como principiante

Con estas palabras empiezo este apunte llamado “Guía mínima para empezar a utilizar Tmux”.

O bueno, ese era el nombre que iba a ponerle a este texto en un principio. Con la esperanza de volverlo un poco más personal y menos técnico, decidí cambiarle el enfoque para hacerlo un poco más dinámico y personal.

Estas son algunas de las cosas que aprendí al empezar a usar Tmux, y creo que son cosas que pueden ayudar a cualquiera que empieza a usar el programa.

¿Por qué elegí empezar a usar Tmux?

Me gusta escribir y utilizar programas por medio de la terminal en Linux, y Tmux es una herramienta que vuelve más sencillo utilizar la terminal.

Aunque las ventajas de tmux son varias, principalmente esta frase de la Wiki oficial es la que me convenció:

Work with multiple programs and shells together in one terminal, a bit like a window manager

Tmux es un programa que va a permitirnos utilizar varias programas y shells dentro de una misma terminal.

Por ejemplo podemos usar dentro de un mismo “marco” un fragmento de la pantalla con Bash, otro con Neovim y otro con Nano.

Y de alguna forma este otro apunte también se encuentra relacionado, por el asunto de encajar más programas en una misma pantalla:

Instalar Tmux y abrirlo

En este momento estoy utilizando Linux Mint, por lo que para hacer la instalación utilicé el comando:

sudo apt install tmux

Pero este enlace lleva a la documentación para hacer la instalación en otros sistemas operativos

Ahora para empezar a usar Tmux escribo el comando:

tmux new

Tmux tiene una estructura jerárquica

Estoy revisando esto de una forma superficial, pero según entiendo Tmux tiene una estructura jerárquica en niveles. Estos niveles pueden describirse de esta forma:

  1. Servidor/cliente (server/client):

Tmux mantiene todo lo que hace dentro de un único proceso, actuando como un servidor que actúa detrás de escena mientras funciona. Luego cada vez que creamos una nueva sesión o usamos un comando, nos conectamos a Tmux como un cliente.

Esta relación server/client es lo que permite algunas de las ventajas del programa, como por ejemplo la posibilidad de usarlo de forma remota y retomarlo en distintos momentos.

Un servidor puede contener multiples sesiones en su interior.

  1. Sesión (session):

Una sesión representa un espacio de trabajo. Es un proyecto por ejemplo. Cuándo uso el comando:

tmux new

Lo que estoy haciendo es empezar una nueva sesión. Por ejemplo si quiero crear una sesión llamada “libro” utilizo el comando:

tmux new -s libro

Una misma sesión puede contener múltiples ventanas.

  1. Ventana (window):

Una sesión puede tener múltiples ventanas. Las ventanas pueden tener sus propios nombres, y pueden ser modificadas de forma independiente.

Por ejemplo, puedo tener una ventana llamada “ideas” y otra llamada “tareas_pendientes” dentro de la sesión “libro” del ejemplo anterior.

  1. Panel (pane):

Una ventana puede contener múltiples paneles en su interior. Cada panel tiene una terminal o programa diferente.

Terminemos de imaginar nuestro ejemplo.

En nuestra sesión llamada “libro” tenemos una ventana llamada “ideas”. Dentro de esa ventana tenemos tres paneles abiertos, uno con Neovim, otro con Bash y otro con Nano. Y en cada panel estoy realizando una tarea distinta.

Tmux se utiliza por medio de comandos y combinaciones del teclado

Hay muchas combinaciones del teclado para este programa, en esto también la experiencia de uso me recuerda mucho a Neovim.

Toda esa información es mucha como para detallarlos en esta entrada, pero podemos encontrar toda la información que necesitamos sobre las combinaciones en este sitio

Tmux tiene una barra de estatus

Tmux tiene una barra de estatus (status bar) en la parte inferior de la pantalla.

Esa barra nos aporta varios datos, por ejemplo el nombre de la sesión y la fecha. El color de la barra puede cambiar.

Otro detalle a tener en cuenta es que podemos modificar los datos que la barra nos muestra.

Tmux tiene diferentes modos de trabajo

Tmux tiene una forma de uso que alterna entre lo que puedo describir como varios modos de trabajo. Y cada uno de esos modos se comporta de una forma diferente. Podemos ir alternando entre estas formas con algunas combinaciones de teclas.

Modo Predeterminado (Default mode)

Me permite interactuar directamente con el texto. El equivalente a “utilizar la terminal” por decirlo de alguna forma.

Modo de selección (choose mode)

Entramos a este modo presionando “Ctrl + b” y luego “w”, o dicho de otra forma:

Ctrl + b w

En este modo podemos seleccionar entre por ejemplo las diferentes ventanas abiertas en la sesión.

Modo de comandos (command mode)

Entramos a este modo presionando:

Ctrl + b  :

El espacio para escribir comandos aparece en el lugar que ocupaba la barra de estatus.

Un comando que puedo escribir por ejemplo es el siguiente, que crea un nuevo panel horizontal:

split-window -h

Conclusión

Con esto le doy un cierre a este apunte, donde cuento mi experiencia al utilizar Tmux.

Espero haber transmitido en el texto de forma sencilla algunas ideas que, de haberlas conocido desde un primer momento, me hubieran facilitado mucho el empezar a usar el programa.

Es algo así como una lista rápida de temas, una vez que conocemos los detalles básicos podemos ampliar nuestro conocimiento con la práctica y con la increíble calidad de todo la documentación que se consigue sobre el tema.

¿Encontraste algún error en el texto? Por favor avisame para que pueda corregirlo.

La seguimos en el próximo apunte.

Leave a Reply