TMUX(1) | General Commands Manual | TMUX(1) |
tmux
—
tmux |
[-28dqUuVv ]
[-f file]
[-L socket-name]
[-S socket-path]
[command [flags]] |
tmux
is a terminal multiplexer; it enables a number of
terminals to be accessed and controlled from a single terminal.
tmux
runs as a server-client system. A
server is created automatically when necessary and holds a number of
sessions, each of which may have a number of
windows linked to it. A window may be split on screen into
one or more panes, each of which is a separate terminal.
Any number of clients may connect to a session, or the
server may be controlled by issuing commands with
tmux
. Communication takes place through a socket, by
default placed in /tmp.
The options are as follows:
-2
tmux
to assume the terminal supports 256
colours.-8
-2
, indicates the terminal supports 88
colours.-d
tmux
to assume the terminal supports default
colours.-f
filetmux
will look for a config file at
~/.tmux.conf. The configuration file is a set of
tmux
commands which are executed in sequence when
the server is first started.-q
-L
socket-nametmux
stores the server socket in a directory under
/tmp; the default socket is named
default. This option allows a different socket name to
be specified, allowing several independent tmux
servers to be run. Unlike -S
a full path is not
necessary: the sockets are all created in the same directory.-S
socket-path-S
is specified, the default socket directory is
not used and any -L
flag is ignored.-U
-u
tmux
that the terminal support
UTF-8.-V
-v
tmux
, and described in the following sections. If
no command and flags is specified, the new-session
command is assumed.$ tmux new-session vi
Most commands have a shorter form, known as an alias. For
new-session, this is new
:
$ tmux new vi
Alternatively, the shortest unambiguous form of a command is accepted. If there are several options, they are listed:
$ tmux n ambiguous command: n, could be: new-session, new-window, next-window $
Within an active session, a new window may be created by typing
‘C-b
’ (ctrl-b, known as the prefix
key) followed by the ‘c
’ key.
Windows may be navigated with: ‘C-b
0
’ (to select window 0), ‘C-b
1
’ (to select window 1), and so on;
‘C-b n
’ to select the next window; and
‘C-b p
’ to select the previous
window.
A session may be detached using ‘C-b
d
’ and reattached with:
$ tmux attach-session
Typing ‘C-b ?
’ lists the
current key bindings in the current window; up and down may be used to
navigate the list or ‘Q
’ to exit from
it.
tmux
may be controlled from an attached client by using
a key combination of a prefix key, ‘C-b
’
(ctrl-b) by default, followed by a command key.
Some of the default key bindings include:
d
’c
’n
’p
’l
’t
’?
’A complete list may be obtained with the
list-keys
command (bound to
‘?
’ by default). Key bindings may be
changed with the bind-key
and
unbind-key
commands.
tmux
maintains a configurable history buffer for each
window. By default, up to 2000 lines are kept, this can be altered with the
history-limit
option (see the
set-option
command below).
tmux
window may be in one of several modes. The
default permits direct access to the terminal attached to the window. The
others are:
list-keys
, is executed from a key binding.scroll-mode
command
(bound to ‘=
’ by default) and
permits the window history buffer to be inspected.copy-mode
command,
bound to [‘
’ by default.The keys available depend on whether emacs(1) or
vi(1) mode is selected (see the
mode-keys
option). The following keys are supported
as appropriate for the mode:
Function | vi | emacs |
Start
of line |
0 or ^ | C-a |
Clear
selection |
Escape | C-g |
Copy
selection |
Enter | M-w |
Cursor
down |
j | Down |
End
of line |
$ | C-e |
Cursor
left |
h | Left |
Next
page |
C-f | Page down |
Next
word |
w | M-f |
Previous
page |
C-u | Page up |
Previous
word |
b | M-b |
Quit
mode |
q | Escape |
Cursor
right |
l | Right |
Start
selection |
Space | C-Space |
Cursor
up |
k | Up |
tmux
maintains a stack of paste
buffers for each session. Up to the value of the
buffer-limit
option are kept; when a new buffer is
added, the buffer at the bottom of the stack is removed. Buffers may be added
using copy-mode
or the
set-buffer
command, and pasted into a window using the
paste-buffer
command.
tmux
may be split into one or
more panes; each pane takes up a certain area of the display
and is a separate terminal. A window may be split into panes using the
split-window
command.
Panes are numbered beginning from zero; in horizontal layouts zero is the leftmost pane and in vertical the topmost.
Panes may be arranged using several layouts. The layout may be
cycled with the next-layout
command (bound to
‘C-space
’ by default), the current
pane may be changed with the up-pane
and
down-pane
commands and the
rotate-window
and swap-pane
commands may be used to swap panes without changing the window layout.
The following layouts are supported:
manual
resize-pane-up
and
resize-pane-down
commands.active-only
even-horizontal
even-vertical
left-vertical
tmux
. Most commands accept the optional
-t
argument with one of
target-client, target-session or
target-window. These specify the client, session or
window which a command should affect. target-client is
the name of the pty(4) file to which the client is
connected, for example /dev/ttyp1. Clients may be
listed with the list-clients
command.
target-session is either the name of a
session (as listed by the list-sessions
command); or
the name of a client as for target-client, in this
case, the session attached to the client is used. An
fnmatch(3) pattern may be used to match the session name.
If a session is omitted when required, tmux
attempts
to use the current session; if no current session is available, the most
recently created is chosen. If no client is specified, the current client is
chosen, if possible, or an error is reported.
target-window specifies a window in the form
session:index, for example mysession:1.
The session is in the same form as for target-session.
session, index or both may be omitted.
If session is omitted, the same rules as for
target-session are followed; if
index is not present, the current window for the given
session is used. When the argument does not contain a colon (:),
tmux
first attempts to parse it as window index; if
that fails, an attempt is made to match a session or client name.
Multiple commands may be specified together as part of a
command sequence. Each command should be separated by
spaces and a semicolon (Ql ; ); commands are executed sequentially from left
to right. A literal semicolon may be included by escaping it with a
backslash (for example, when specifying a command sequence to
bind-key
).
Examples include:
refresh-client -t/dev/ttyp2 rename-session -tfirst newname set-window-option -t:0 monitor-activity on new-window ; split-window -d bind-key D detach-client \; lock-server
The following commands are available:
attach-session
[-d
] [-t
target-session]attach
)-d
is specified, any other clients attached to the
session are detached.
If no server is started,
attach-session
will attempt to start it; this
will fail unless sessions are created in the configuration file.
bind-key
[-r
] key
command [arguments]bind
)C-
’
or ‘^
’ for ctrl keys, or
‘M-
’ for alt (meta) keys. The
-r
flag indicates this key may repeat, see the
repeat-time
option.break-pane
[-d
] [-p
pane-index] [-t
target-window]breakp)
-d
is given, the new
window does not become the current window.choose-session
[-t
target-window]tmux
.choose-window
[-t
target-window]tmux
.clock-mode
[-t
target-window]command-prompt
[-t
target-client]
[template]tmux
to execute commands interactively. If
template is specified, it is used as the command;
any %% in the template will be replaced by what is entered at the
prompt.confirm-before
commandconfirm)
tmux
.copy-buffer
[-a
src-index]
[-b
dst-index]
[-s
src-session]
[-t
dst-session]copyb)
copy-mode
[-u
] [-t
target-window]-u
option scrolls one page
up.delete-buffer
[-b
buffer-index]
[-t
target-session]deleteb
)detach-client
[-t
target-client]detach
)-t
.down-pane
[-p
pane-index]
[-t
target-window]downp
)find-window
[-t
target-window]
match-stringfindw
)tmux
.has-session
[-t
target-session]has
)kill-pane
[-p
pane-index]
[-t
target-window]killp
)kill-server
tmux
server and clients and destroy all
sessions.kill-session
[-t
target-session]kill-window
[-t
target-window]killw
)last-window
[-t
target-session]last
)link-window
[-dk
] [-s
src-window] [-t
dst-window]linkw
)-k
is given and
dst-window exists, it is killed, otherwise an error
is generated. If -d
is given, the newly linked
window is not selected.list-buffers
[-t
target-session]lsb
)list-clients
lsc
)list-commands
lscm
)tmux
.list-keys
lsk
)list-sessions
ls
)list-windows
[-t
target-session]lsw
)load-buffer
[-b
buffer-index]
[-t
target-session]
pathloadb
)lock-server
lock
)move-window
[-d
] [-s
src-window] [-t
dst-window]movew
)link-window
, except the window at
src-window is moved to
dst-window.new-session
[-d
] [-n
window-name] [-s
session-name] [command]new
)-d
is given. window-name and
command are the name of and command to execute in
the initial window.new-window
[-d
] [-n
window-name] [-t
target-window] [command]neww
)-d
is given, the session
does not make the new window the current window.
target-window represents the window to be created.
command is the command to execute. If
command is not specified, the default command is
used.
The TERM
environment variable must be
set to “screen” for all programs running
inside tmux
. New windows will
automatically have “TERM=screen” added to their
environment, but care must be taken not to reset this in shell start-up
files.
next-layout
[-t
target-window]nextl
)next-window
[-t
target-session]next
)paste-buffer
[-d
] [-b
buffer-index] [-t
target-window]pasteb
)previous-window
[-t
target-session]prev
)refresh-client
[-t
target-client]refresh
)-t
.rename-session
[-t
target-session]
new-namerename
)rename-window
[-t
target-window]
new-namerenamew
)resize-pane-down
[-p
pane-index]
[-t
target-window]
[adjustment]resizep-down
)resize-pane-up
[-p
pane-index]
[-t
target-window]
[adjustment]resizep-up)
respawn-window
[-k
] [-t
target-window] [command]respawnw
)remain-on-exit
window option). If
command is not given, the command used when the
window was created is executed. The window must be already inactive,
unless -k
is given, in which case any existing
command is killed.rotate-window
[-DU
] [-t
target-window]rotatew
)-U
or downward
(numerically higher).save-buffer
[-a
] [-b
buffer-index] [-t
target-session] pathsaveb
)-a
option appends
to rather than overwriting the file.scroll-mode
[-u
] [-t
target-window]-u
has the same meaning as
in the copy-mode
command.select-pane
[-p
pane-index]
[-t
target-window]selectp
)select-prompt
[-t
target-client]select-window
[-t
target-window]selectw
)send-keys
[-t
target-window]
key ...send
)C-a
’
or ‘npage
’ ) to send; if the string
is not recognised as a key, it is sent as a series of characters. All
arguments are sent sequentially from first to last.send-prefix
[-t
target-window]server-info
info
)set-buffer
[-b
buffer-index]
[-t
target-session]
datasetb
)set-option
[-gu
] [-t
target-session] option
valueset
)-g
is specified, the option is set
as a global option. Global options apply to all sessions which don't have
the option explicitly set. If -g
is not used, the
option applies only to target-session. The
-u
flag unsets an option, so a session inherits
the option from the global options - it is not possible to unset a global
option.
Possible options are:
bell-action
[any
| none
|
current
]any
means a bell in
any window linked to a session causes a bell in the current window of
that session, none
means all bells are ignored
and current
means only bell in windows other
than the current window are ignored.buffer-limit
numberdefault-command
commanddefault-path
pathhistory-limit
lineslock-after-time
number-g
.message-attr
attributesdefault
or a comma-delimited list of one or
more of: bright
(or
bold
), dim
,
underscore
, blink
,
reverse
, hidden
, or
italics
.message-bg
colourblack
,
red
, green
,
yellow
, blue
,
magenta
, cyan
,
white
or default
.message-fg
colourprefix
keyrepeat-time
number-r
flag to
bind-key
. Repeat is enabled for the default
keys of the up-pane
,
down-pane
,
resize-pane-up
, and
resize-pane-down
commands.set-remain-on-exit
[on
| off
]remain-on-exit
window option for any
windows first created in this session.set-titles
[on
| off
]status
[on
| off
]status-attr
attributesstatus-bg
colourstatus-fg
colourstatus-interval
intervalstatus-keys
[vi
| emacs
]status-left
stringCharacter pair | Replaced with |
#(command) |
First line of command's output |
#H |
Hostname of local host |
#S |
Session name |
#T |
Current window title |
## |
A literal ‘# ’ |
Where appropriate, these may be prefixed with a number to
specify the maximum length, for example
‘#24T
’.
status-left-length
lengthstatus-right
stringstatus-left
, string will
be passed to strftime(3) and character pairs are
replaced.status-right-length
lengthset-password
[-c
] passwordpass
)-c
option is given,
a pre-encrypted password may be specified. By default, the password is
blank, thus any entered password will be accepted when unlocking the
server (see the lock-server
command). To prevent
variable expansion when an encrypted password is read from a configuration
file, enclose it in single quotes (').set-window-option
[-gu
] [-t
target-window] option
valuesetw
)-g
and
-u
flags work similarly to the
set-option
command.
Supported options are:
aggressive-resize
[on
| off
]tmux
will resize the window to the size of the
smallest session for which it is the current window, rather than the
smallest session to which it is attached. The window may resize when
the current window is changed on another sessions; this option is good
for full-screen programs which support SIGWINCH and poor for
interactive programs such as shells.automatic-rename
[on
| off
]tmux
will attempt - on supported platforms -
to rename the window to reflect the command currently running in it.
This flag is automatically disabled for an individual window when a
name is specified at creation with new-window
or
new-session
, or later with
rename-window
. It may be switched off globally
with:
set-window-option -g automatic-rename off
clock-mode-colour
colourclock-mode-style
[12
| 24
]force-height
heightforce-width
widthtmux
from resizing a window to greater
than width or height. A
value of zero restores the default unlimited setting.mode-attr
attributesmode-bg
colourmode-fg
colourmode-keys
[vi
| emacs
]monitor-activity
[on
| off
]remain-on-exit
[on
| off
]respawn-window
command.utf8
[on
| off
]tmux
to expect UTF-8 sequences to
appear in this window.window-status-attr
attributeswindow-status-bg
colourwindow-status-fg
colourxterm-keys
[on
| off
]tmux
will generate
xterm(1) -style function key sequences; these have a
number included to indicate modifiers such as shift, meta or
ctrl.show-buffer
[-b
buffer-index]
[-t
target-session]showb
)show-options
[-t
target-session]
option valueshow
)show-window-options
[-t
target-window]
option valueshoww
)source-file
pathsource
)split-window
[-d
] [-l
lines | -p
percentage] [-t
target-window] [command]-l
and -p
options specify
the size of the new window in lines, or as a percentage, respectively. All
other options have the same meaning as in the
new-window
command.
A few notes with regard to panes:
start-server
start
)tmux
server, if not already running,
without creating any sessions.suspend-client
[-c
-target-client
]suspendc
)swap-pane
[-dDU
] [-p
src-index] [-t
target-window] [-q
dst-index]swapp
)-U
is used, the
pane is swapped with the pane above (before it numerically);
-D
swaps with the pane below (the next
numerically); or dst-index may be give to swap with
a specific pane.swap-window
[-d
] [-s
src-window] [-t
dst-window]swapw
)link-window
, except the source
and destination windows are swapped. It is an error if no window exists at
src-window.switch-client
[-c
target-client
-t
target-session]switchc
)unbind-key
keyunbind
)unlink-window
[-t
target-window]unlinkw
)up-pane
[-p
pane-index]
[-t
target-window]upp
)tmux
configuration fileApril 20, 2009 | BSD |