Prefix default: Ctrl + b (can be changed via
set-option -g prefix C-a). All commands assume prefix is
Ctrl + b. Replace as needed if you remap.
Getting Started & Sessions
tmuxStart new sessiontmux new -s nameNew session with nametmux lsList all sessionstmux attach -t nameAttach to named sessiontmux detachDetach (from inside tmux)tmux kill-session -t nameKill session by nametmux kill-serverKill all sessions (server)tmux rename-session -t old newRename sessiontmux switch -t nameSwitch to sessionprefixd Detach from sessionprefixs Session chooserprefix\$ Rename current sessionprefix: Open command promptprefix? List key bindingsprefix, Rename current windowprefixw Window chooser
Windows & Tabs
prefixc Create new windowprefixp Previous windowprefixn Next windowprefix\<0-9> Select window by numberprefix& Kill current windowprefix. Move windowprefixf Find window by nameprefixl Last windowrename-window newnameswap-window -t 2Swap with window 2move-window -t 3Move to window 3link-window -s src -t dstunlink-windowkill-windowdisplay-message '#W'Show window name
Panes
prefix% Split verticallyprefix" Split horizontallyprefixo Go to next paneprefixq Show pane numbersprefix; Toggle between last two panesprefixx Kill current paneprefix{ } Swap pane left/rightprefixz Toggle zoom paneprefix\<arrow> Move pane focusprefixAlt + \<arrow> Resize panejoin-pane -s 2.1 -t 1.0Join window 2.1 to 1.0break-paneConvert pane to windowswap-pane -[UDLR]Swap pane directionselect-pane -t :.+Select nextset-window-option synchronize-panes onSync panesdisplay-message '#P'Show pane index
Copy & Scroll Mode
prefix[ Enter copy modeqQuit copy modeSpaceStart selectionEnterCopy selectionPgUp/PgDnScroll up/down/Search forward?Search backwardn/NNext/Prev search result:show-bufferShow top buffer:list-buffersList all buffers:save-buffer filenameSave buffer to file:delete-buffer -b NDelete buffer Nset -g mode-keys viUse Vim keys in copy mode
Resizing & Layout
prefixAlt + ↑/↓/←/→ Resize paneprefixSpace Change pane layoutprefixq Show pane numbersprefix{ } Swap panes left/rightprefixz Zoom/unzoom paneselect-layout even-horizontalselect-layout even-verticalselect-layout main-horizontalselect-layout main-verticalselect-layout tiled
Mouse Support
set -g mouse onEnable mouse for resizing, selecting, etcset -g mouse offDisable mouse supportsetw -g mode-mouse onEnable mouse in copy mode (tmux \<2.1)- Drag border to resize pane
- Click pane/window to focus
- Scroll mouse wheel to scroll history
Scripting & Automation
tmux new-session -d -s mysessionDetached sessiontmux send-keys -t mysession 'top' EnterSend command to panetmux new-window -t mysession:1 -n 'htop'tmux split-window -h -t mysession:1tmux select-pane -t mysession:1.0
# Script Example
tmux new-session -d -s dev
tmux new-window -t dev:1 -n code
tmux send-keys -t dev:1 'vim .' C-m
tmux split-window -h -t dev:1
tmux send-keys -t dev:1.1 'npm start' C-m
tmux attach -t dev
Config File (~/.tmux.conf)
# Prefix remap
set-option -g prefix C-a
unbind C-b
bind C-a send-prefix
Mouse support
set -g mouse on
Vim keys in copy mode
setw -g mode-keys vi
Enable 256 color support
set -g default-terminal "screen-256color"
Useful titles
set -g set-titles on
set -g set-titles-string "#S:#I.#P #W"
Split pane shortcuts
bind | split-window -h
bind - split-window -v
Reload config
bind r source-file ~/.tmux.conf ; display-message "Config reloaded!"
Troubleshooting & Tips
- tmux not responding to keys? Are you in a nested tmux session? Default
prefix is
Ctrl+b. TryCtrl+btwice. - Copy/paste not working? Use
set -g mouse onand try Shift+Mouse or enable system clipboard withtmux-yankplugin. - Terminal colors off? Check
set -g default-terminal "screen-256color"in both~/.tmux.confand your terminal emulator. - Sharing tmux? Run
tmux attach -t sessionfrom multiple terminals (same user).
Plugins & Extensions
- TPM (Tmux Plugin Manager) Easy plugin management
- tmux-sensible Best default settings
- tmux-resurrect Restore tmux sessions
- tmux-continuum Continuous saving
- tmux-yank Clipboard integration
Install TPM:
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm Then
add plugins in ~/.tmux.conf and use prefix + I to install.