(C-x means ctrl+x, M-x means alt+x)
The default prefix is C-b. If you (or your muscle memory) prefer C-a, you need to add this to ~/.tmux.conf
.
# remap prefix to Control + a
set-option -g prefix C-a
# bind 'C-a C-a' to type 'C-a'
unbind-key C-b
bind-key C-a send-prefix
I'm going to assume that C-a is your prefix.
Session is a set of windows, plus a notion of which window is current.
Window is a single screen covered with panes. (Once might compare it to a ‘virtual desktop’ or a ‘space’.)
Pane is a rectangular part of a window that runs a specific command, e.g. a shell.
Display a list of keyboard shortcuts.
C-a ?
Navigate using Vim or Emacs shortcuts, depending on the value of mode-keys
. Emacs is the default, and if you want Vim shortcuts for help and copy modes (e.g. j, k, C-u, C-d), add the following line to ~/.tmux.conf
.
setw -g mode-keys vi
Any command mentioned in this list can be executed as tmux something
or C-a :something
(or added to ~/.tmux.conf
).
tmux new-session -s work
Create a new session that shares all windows with an existing session, but has its own separate notion of which window is current:
tmux new-session -s work2 -t work
tmux attach -t work
C-a d
C-a ( previous session
C-a ) next session
C-a L ‘last’ (previously used) session
C-a s choose a session from a list
C-a $ rename the current session
C-a
C-a c create a new window
C-a 1 ... switch to window 1, ..., 9, 0
C-a 9
C-a 0
C-a p previous window
C-a n next window
C-a l ‘last’ (previously used) window
C-a w choose window from a list
C-a M-n next window with a bell, activity or
content alert
C-a M-p previous such window
C-a , rename the current window
C-a & kill the current window
C-a " split vertically (top/bottom)
C-a % split horizontally (left/right)
C-a left go to the next pane on the left
C-a right (or one of these other directions)
C-a up
C-a down
C-a o go to the next pane (cycle through all of them)
C-a ; go to the ‘last’ (previously used) pane
C-a { move the current pane to the previous position
C-a } move the current pane to the next position
C-a C-o rotate window ‘up’ (i.e. move all panes)
C-a M-o rotate window ‘down’
C-a ! move the current pane into a new separate
window (‘break pane’)
C-a :move-pane -t :3.2
split window 3's pane 2 and move the current pane there
C-a M-up, C-a M-down, C-a M-left, C-a M-right
resize by 5 rows/columns
C-a C-up, C-a C-down, C-a C-left, C-a C-right
resize by 1 row/column
C-a M-1 switch to even-horizontal layout
C-a M-2 switch to even-vertical layout
C-a M-3 switch to main-horizontal layout
C-a M-4 switch to main-vertical layout
C-a M-5 switch to tiled layout
C-a space switch to the next layout
You can do this by switching to the appropriate window, typing your Tmux prefix and then a colon to bring up a Tmux command line, and typing:
:setw synchronize-panes
You can optionally add on or off to specify which state you want; otherwise the option is simply toggled. This option is specific to one window, so it won’t change the way your other sessions or windows operate. When you’re done, toggle it off again by repeating the command. tip source
C-a x kill the current pane
C-a q display pane numbers for a short while
Force a reload of the config file on C-a r
unbind r
bind r source-file ~/.tmux.conf
Some other settings that I use.
setw -g xterm-keys on