Using Tmux

tmux lo conoci en una charla que vi en youtube y expandí mis conocimientos usando un libro he aquí un resumen para que les sea útil.


Comandos


Nueva sesión
tmux new -s miSesion

Ver las distintas sesiones
tmux ls

Crear una nueva sesión pero que quede funcionando por detrás
tmux new -s miSesion -d

Volver a una sesión
tmux attach -t miSesion

Matar una sesión
tmux kill-session -t miSesion

Crea una nueva sesión con un nombre en la ventana
tmux new -s miSesion -n miVentana

Salir o salir ventana
exit

Hotkeys


El prefijo por defecto es Ctrl + b sin embargo se puede cambiar.

Crea una nueva ventana en tmux
prefix + c

Renombrar la ventana
prefix + ,

Ir a la ventana previa
prefix + p

Ir a la ventana siguiente
prefix + n

Ir a la ventana nº 1
prefix + 1

Salir de la ventana
prefix + &

Dettach
prefix + d

Divide la pantalla Vertical
prefix + %

Divide la pantalla Horizontal
prefix + "

Salta al panel según la dirección
prefix +{← ↑ → ↓}

Cambiamos de posición los paneles dependiendo la configuración por defecto
prefix + space

Cierra el panel que estamos ocupando
prefix + x

Pasar al modo comando
prefix + :

Mostrar toda las combinaciones de botones
prefix + ?

Inicio automatizado


Para usar una configuración para llamarlo de alguna forma se debe usar el siguiente comando:
tmux -f miConfig.conf attach

la siguiente configuración lo que hace es crear 4 ventanas con sus respectivos nombres ya que asi tenia disponible las vistas,modelos y controladores de una pagina web la cual estaba construyendo.


source-file ~/.tmux.conf
new-session -s admin -n model
new-window -n controller -t admin
new-window -n view -t admin
new-window -n config -t admin
send-keys -t model 'cd /home/ubuntu/ad/app/Model' C-m
send-keys -t controller 'cd /home/ubuntu/ad/app/Controller' C-m
send-keys -t view 'cd /home/ubuntu/ad/app/View' C-m
send-keys -t config 'cd /home/ubuntu/ad/app/Config' C-m


Mi configuración


La configuración de tmux se puede configurar colocando algunas cosas en el archivo .tmux.conf por ejemplo yo cambie el prefijo a Ctrl + a como se usa en "screen", para que tome los cambios se necesita hacer en el modo comando source-file ~/.tmux.conf o en otro archivo de configuración como en el ejemplo anterior.

.tmux.conf

#Prefix es Ctrl-a
set -g prefix C-a
bind C-a send-prefix
#Sacamos Ctrl-b
unbind C-b
#Cambiamos el Delay
set -sg escape-time 1
#Cambiamos el inicio de las ventanas a 1
set -g base-index 1
#Cambiamos el inicio para los paneles
setw -g pane-base-index 1
#Recargar nuestra configuracion a tmux
bind r source-file ~/.tmux.conf \; display "Reloaded!"
#Paneles
bind | split-window -h
bind - split-window -v
#Mouse works as expected
setw -g mode-mouse on
set -g mouse-select-pane on
set -g mouse-resize-pane on
set -g mouse-select-window on

setw -g monitor-activity on
set -g visual-activity on

set -g mode-keys vi
set -g history-limit 10000

# y and p as in vim
bind Escape copy-mode
unbind p
bind p paste-buffer
bind -t vi-copy 'v' begin-selection
bind -t vi-copy 'y' copy-selection
bind -t vi-copy 'Space' halfpage-down
bind -t vi-copy 'Bspace' halfpage-up

# extra commands for interacting with the ICCCM clipboard
bind C-c run "tmux save-buffer - | xclip -i -sel clipboard"
bind C-v run "tmux set-buffer \"$(xclip -o -sel clipboard)\"; tmux paste-buffer"
#set -g default-command "reattach-to-user-namespace -l /bin/bash"
#bind C-c run "tmux save-buffer - | reattach-to-user-namespace pbcopy"
#bind C-v run "tmux set-buffer $(reattach-to-user-namespace pbpaste);tmux paste-buffer"

# easy-to-remember split pane commands
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %

# moving between panes with vim movement keys
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

# moving between windows with vim movement keys
bind -r C-h select-window -t :-
bind -r C-l select-window -t :+
# resize panes with vim movement keys
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5
# Highlight active window
setw -g window-status-fg white
setw -g window-status-bg black
setw -g window-status-attr bright
# Color para los paneles
set -g pane-border-fg green
set -g pane-border-bg black
set -g pane-active-border-fg white
set -g pane-active-border-bg yellow
# Modo vi para moverse por el buffer
#setw -g mode-keys v
# Modificando el status-bar
set -g status-left-length 40
set -g status-left "#[fg=red]Session: #S #[fg=green]#I #[fg=black]#P"
set -g status-right "#[fg=black]%d %b %R"
# Color de la status bar completa
set -g status-bg white
set -g status-utf8 on
## Ventanas en el centro
set -g status-justify centre
# Para tener los 256 colores
set -g default-terminal "screen-256color"

No comments: