tmux: configuración y flujo de trabajo
El comportamiento de tmux se personaliza a través del archivo ~/.tmux.conf. Los cambios se aplican en el inicio de cada nueva sesión. Para recargar la configuración sin reiniciar:
tmux source-file ~/.tmux.conf
# o desde dentro de tmux:
Ctrl+b :source-file ~/.tmux.conf
Configuración básica recomendada
# ~/.tmux.conf
# Cambiar el prefijo de Ctrl+b a Ctrl+a (más cómodo, similar a screen)
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix
# Activar soporte para el ratón (scroll, clic en paneles, resize)
set -g mouse on
# Numeración de ventanas desde 1 en vez de 0
set -g base-index 1
setw -g pane-base-index 1
# Reordenar numeración al cerrar ventanas
set -g renumber-windows on
# Aumentar el historial de scroll (por defecto son 2000 líneas)
set -g history-limit 10000
# Colores de la barra de estado
set -g status-bg colour235
set -g status-fg colour136
Dividir paneles de forma más intuitiva
El % y el " para dividir no son muy memorables. Puedes reasignarlos:
# Dividir con | (horizontal) y - (vertical)
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %
Navegación entre paneles con Vim
Si usas Vim, puedes mover el foco entre paneles con las mismas teclas que en el editor:
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
Copiar y pegar
Con mouse on activo puedes seleccionar texto con el ratón y copiarlo con el botón central. Desde teclado:
Ctrl+a [ # entrar en modo copia
Espacio # iniciar selección (mueve con las flechas)
Enter # copiar la selección
Ctrl+a ] # pegar
Si tienes xclip o xsel instalado, puedes integrar tmux con el portapapeles del sistema:
# En ~/.tmux.conf (para xclip):
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -in -selection clipboard"
Compartir una sesión entre usuarios
Dos usuarios en el mismo servidor pueden compartir la misma sesión de tmux, útil para pair programming o soporte en remoto:
# Usuario A crea la sesión
tmux new -s compartida
# Usuario B se une a la misma sesión (deben estar en el mismo servidor)
tmux attach -t compartida
Ambos usuarios ven y controlan el terminal al mismo tiempo.
Flujo de trabajo típico para desarrollo web
Una sesión tmux bien organizada puede sustituir a varios terminales abiertos. Por ejemplo, para gestionar un servidor web:
tmux new -s web
# Ventana 1: editor
Ctrl+a , → renombrar a "editor"
# Ventana 2: logs del servidor
Ctrl+a c → nueva ventana
Ctrl+a , → renombrar a "logs"
tail -f /var/log/apache2/error.log
# Ventana 3: comandos sueltos / git
Ctrl+a c → nueva ventana
Ctrl+a , → renombrar a "shell"
Al desconectarte (Ctrl+a d), toda la sesión queda en background. Al volver con tmux attach -t web lo encuentras exactamente igual.
Referencia rápida
| Atajo | Acción |
|---|---|
| Ctrl+a d | Desconectarse (sesión sigue activa) |
| Ctrl+a c | Nueva ventana |
| Ctrl+a n / p | Ventana siguiente / anterior |
| Ctrl+a | | Dividir panel horizontalmente |
| Ctrl+a - | Dividir panel verticalmente |
| Ctrl+a flechas | Moverse entre paneles |
| Ctrl+a z | Zoom al panel actual |
| Ctrl+a [ | Modo scroll / copia |
| Ctrl+a $ | Renombrar sesión |
| Ctrl+a , | Renombrar ventana |
| Ctrl+a s | Cambiar entre sesiones |
Nota: la tabla usa el prefijo Ctrl+a tal como queda tras aplicar la configuración de esta lección. Con la configuración por defecto de tmux el prefijo es Ctrl+b.
- Anterior « Fundamentos
- Siguiente Fin del tema »