Apuntes sobre Otras cosas

Cajón Desastre: Todo lo que no encaja en ninguna parte.

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 %

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 dDesconectarse (sesión sigue activa)
Ctrl+a cNueva ventana
Ctrl+a n / pVentana siguiente / anterior
Ctrl+a |Dividir panel horizontalmente
Ctrl+a -Dividir panel verticalmente
Ctrl+a flechasMoverse entre paneles
Ctrl+a zZoom al panel actual
Ctrl+a [Modo scroll / copia
Ctrl+a $Renombrar sesión
Ctrl+a ,Renombrar ventana
Ctrl+a sCambiar 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.

TOP