================
**Table of Contents**
* [General Usage](#general-usage)
* [Shortcuts](#shortcuts)
* [Commands](#commands)
* [Scripting tmux](#scripting-tmux)
* [Configuring tmux](#configuring-tmux)
* [Further Resources](#further-resources)
General Usage
=============
* Start a tmux session with
``` sh
tmux
- Select text in a tmux window with your mouse by holding the
SHIFT
key (Windows) or theOPTIONS
key (Mac) and then using the mouse as you’d normally do
Shortcuts
Key(s) | Description |
---|---|
CTRL +b <command>
|
sends <command> to tmux instead of sending it to the shell |
General Commands | |
? |
shows a list of all commands (q closes the list) |
: |
enter a tmux command |
Working with Windows | |
c |
creates a new window |
, |
rename current window |
p |
switch to previous window |
n |
switch to next window |
w |
list windows (and then select with arrow keys) |
Working with Panes | |
% |
split window vertically |
- |
split window horizontally requires bind - split-window -v in our .tmux.conf
|
→ | go to right pane |
← | go to left pane |
↑ | go to upper pane |
↓ | go to lower pane |
Working with Sessions | |
d |
detach from session |
Commands
Command | Description |
---|---|
tmux -s | creates a new session with name <SESSION NAME>
|
tmux list-sessions | lists all currently running tmux sessions |
tmux attach -t | attach to the session called <SESSION NAME>
|
Scripting TMUX
Starting multiple commands in multiple panes
Start a new tmux session with tmux
before running the script!
# start a new tmux session and detach from it
tmux new-session -d -s session1
tmux rename-window 'my window'
tmux send-keys 'echo "pane 1"' C-m
tmux select-window -t session1:0
tmux split-window -h
tmux send-keys 'echo "pane 2"' C-m
tmux split-window -h
tmux send-keys 'echo "pane 3"' C-m
# we want to have notifications in the status bar, if there are changes in the windows
tmux setw -g monitor-activity on
tmux set -g visual-activity on
tmux select-layout even-horizontal
# select the first window to be in the foreground
tmux select-window -t session:1
# attach our terminal to the tmux session
tmux -2 attach-session -t cflogs
Configuring TMUX
You can configure tmux via the ~/.tmux.conf
file. After making changes to the config file, you can update the configuration “on-the-fly” with
tmux source ~/.tmux.conf
Changing the default prefix
Use
set -g prefix C-a
to change the default prefix from CTRL
+ b
to CTRL
+ a
. Optionally you can “free” the default binding with
unbind C-b
Key Bindings
You can add / alter tmux’s key bindings with the following command
bind | split-window -h
this binds the split window -h
command to the |
key.
Adding Mouse Support for Mac OS X
In order to have mouse support in Mac OS X, you can add the following lines to your config file:
set -g mode-mouse on
set -g mouse-resize-pane on
set -g mouse-select-pane on
set -g mouse-select-window on