TMUX Cheatsheet (with Ctrl+A modifier)
Session Management
| Command |
Action |
tmux new-session -s name |
Create new session named “name” |
Ctrl+A :new-session -s name |
Create new session from within tmux |
tmux ls |
List all sessions |
Ctrl+A s |
List sessions (interactive) |
tmux attach -t name |
Attach to session “name” |
Ctrl+A d |
Detach from current session |
Ctrl+A ( |
Switch to previous session |
Ctrl+A ) |
Switch to next session |
tmux kill-session -t name |
Kill session “name” |
Ctrl+A X |
Kill current session |
Ctrl+A $ |
Rename current session |
Window Management
| Command |
Action |
Ctrl+A c |
Create new window |
Ctrl+A n |
Go to next window |
Ctrl+A p |
Go to previous window |
Ctrl+A l |
Go to last active window |
Ctrl+A 0-9 |
Go to window 0-9 |
Ctrl+A w |
List windows (interactive) |
Ctrl+A , |
Rename current window |
Ctrl+A & |
Kill current window |
Ctrl+A . |
Move current window to another position |
Ctrl+A :swap-window -t -1 |
Move window left |
Ctrl+A :swap-window -t +1 |
Move window right |
Ctrl+A f |
Find window by name |
Pane Management
| Command |
Action |
Ctrl+A % |
Split pane vertically (left/right) |
Ctrl+A " |
Split pane horizontally (top/bottom) |
Ctrl+A o |
Go to next pane |
Ctrl+A ; |
Go to previously active pane |
Ctrl+A Up/Down/Left/Right |
Navigate between panes |
Ctrl+A { |
Swap current pane with previous |
Ctrl+A } |
Swap current pane with next |
Ctrl+A x |
Kill current pane |
Ctrl+A ! |
Convert pane to window |
Ctrl+A z |
Toggle pane zoom (maximize/restore) |
Ctrl+A Ctrl+o |
Rotate panes forward |
Ctrl+A M-o |
Rotate panes backward |
Ctrl+A Space |
Cycle through pane layouts |
Ctrl+A M-1 to M-5 |
Select specific layout |
Pane Resizing
| Command |
Action |
Ctrl+A Ctrl+Up/Down/Left/Right |
Resize pane (1 cell) |
Ctrl+A M-Up/Down/Left/Right |
Resize pane (5 cells) |
Ctrl+A :resize-pane -U 10 |
Resize pane up 10 cells |
Ctrl+A :resize-pane -D 10 |
Resize pane down 10 cells |
Ctrl+A :resize-pane -L 10 |
Resize pane left 10 cells |
Ctrl+A :resize-pane -R 10 |
Resize pane right 10 cells |
Copy Mode
| Command |
Action |
Ctrl+A [ |
Enter copy mode |
q or Esc |
Exit copy mode |
Space |
Start selection |
Enter |
Copy selection and exit copy mode |
g |
Go to top of buffer |
G |
Go to bottom of buffer |
/ |
Search forward |
? |
Search backward |
n |
Next match |
N |
Previous match |
w |
Forward word |
b |
Backward word |
{ |
Previous paragraph |
} |
Next paragraph |
Ctrl+A ] |
Paste from buffer |
Ctrl+A = |
List buffers |
Ctrl+A - |
Delete last buffer |
Command Mode
| Command |
Action |
Ctrl+A : |
Enter command mode |
Ctrl+A ? |
List all key bindings |
Ctrl+A t |
Display time in current pane |
Useful Aliases for .tmux.conf
# Navigation
bind -n C-h select-pane -L
bind -n C-j select-pane -D
bind -n C-k select-pane -U
bind -n C-l select-pane -R
# Splitting panes with intuitive keys
bind v split-window -h
bind s split-window -v
# Reload config
bind r source-file ~/.tmux.conf \; display "Config reloaded!"
# Better window navigation
bind -n M-n next-window
bind -n M-p previous-window
# Mouse support
set -g mouse on
Common Workflows
Create a dev environment with 3 panes
tmux new-session -s dev
Ctrl+A % # Split vertical (left editor, right monitor)
Ctrl+A " # Split bottom pane horizontally
Ctrl+A Left # Select left pane
Ctrl+A c # Create another window for logs
Quick debugging session
Ctrl+A c # New window
Ctrl+A % # Split vertical
Ctrl+A Left # Navigate to left pane
# Run your app on left, logs/tests on right
Monitor multiple services
tmux new-session -s monitor
Ctrl+A % # Service 1
Ctrl+A % # Service 2
Ctrl+A o # Navigate between services
Useful Commands
| Command |
Purpose |
tmux capture-pane -p |
Print pane content |
tmux capture-pane -p -S -30 |
Print last 30 lines |
tmux send-keys -t session:window "command" Enter |
Send command to specific pane |
tmux send-keys -t session "cd /path && ls" Enter |
Execute command in session |
Tips & Tricks
- Prefix twice for nested tmux:
Ctrl+A Ctrl+A sends Ctrl+A to nested session
- History size: Add
set -g history-limit 50000 to .tmux.conf
- Aggressive resize: Add
setw -g aggressive-resize on for better multi-client handling
- Status bar:
set -g status-position top to move status bar to top
- Auto-rename windows:
setw -g automatic-rename on automatically renames windows based on current command
- Monitor activity:
Ctrl+A M marks current window for monitoring
- Synchronize panes:
Ctrl+A :setw synchronize-panes run command across all panes simultaneously
Basic .tmux.conf Setup
# Set prefix to Ctrl+A
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix
# Start window numbers at 1
set -g base-index 1
setw -g pane-base-index 1
# Enable mouse
set -g mouse on
# Set terminal colors
set -g default-terminal "screen-256color"
# Status bar
set -g status-bg black
set -g status-fg white
set -g status-left "[#S]"
set -g status-right "%H:%M %d-%b-%y"
# Key bindings
bind r source-file ~/.tmux.conf \; display "Reloaded!"
bind v split-window -h
bind s split-window -v