mirror of
https://github.com/tmate-io/tmate.git
synced 2024-11-09 01:35:20 +01:00
552 lines
13 KiB
Groff
552 lines
13 KiB
Groff
.\" $Id: tmux.1,v 1.26 2008-06-03 05:35:51 nicm Exp $
|
|
.\"
|
|
.\" Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
|
.\"
|
|
.\" Permission to use, copy, modify, and distribute this software for any
|
|
.\" purpose with or without fee is hereby granted, provided that the above
|
|
.\" copyright notice and this permission notice appear in all copies.
|
|
.\"
|
|
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
.\" WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
|
|
.\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
|
.\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
.\"
|
|
.Dd November 9, 2007
|
|
.Dt TMUX 1
|
|
.Os
|
|
.Sh NAME
|
|
.Nm tmux
|
|
.Nd "terminal multiplexer"
|
|
.Sh SYNOPSIS
|
|
.Nm tmux
|
|
.Bk -words
|
|
.Op Fl vV
|
|
.Op Fl S Ar socket-path
|
|
.Op Ar command Op Ar arguments
|
|
.Ek
|
|
.Sh DESCRIPTION
|
|
.Nm
|
|
is a terminal multiplexer; it enables a number of terminals (or windows) to be
|
|
accessed and controlled from a single terminal.
|
|
.Pp
|
|
.Nm
|
|
runs as a server-client system. A server is created automatically when
|
|
necessary and holds a number of
|
|
.Em sessions ,
|
|
each of which may have a number of
|
|
.Em windows
|
|
linked to it. Any number of
|
|
.Em clients
|
|
may connect to a session, or the server
|
|
may be controlled by issuing commands with
|
|
.Nm .
|
|
Communication takes place through a socket, by default placed in
|
|
.Pa /tmp .
|
|
.Pp
|
|
The options are as follows:
|
|
.Bl -tag -width "XXXXXXXXXXXX"
|
|
.It Fl S Ar socket-path
|
|
Specify an alternative path to the server socket.
|
|
The default is
|
|
.Pa /tmp/tmux-UID ,
|
|
where
|
|
.Em UID
|
|
is the uid of the user who invoked
|
|
.Nm .
|
|
.It Fl v
|
|
Request verbose logging.
|
|
This option may be specified multiple times for increasing verbosity.
|
|
Log messages will be saved into
|
|
.Pa tmux-client-PID.log
|
|
and
|
|
.Pa tmux-server-PID.log
|
|
files in the current directory, where
|
|
.Em PID
|
|
is the pid of the server or client process.
|
|
.It Ar command Op Ar arguments
|
|
This specifies one of a set of commands used to control
|
|
.Nm ,
|
|
and described in the following sections.
|
|
If no command and arguments is specified, the
|
|
.Ic new-session
|
|
command is assumed.
|
|
.Pp
|
|
.El
|
|
.Sh QUICK START
|
|
To create a new tmux session running
|
|
.Xr vi 1 :
|
|
.Pp
|
|
.Dl $ tmux new-session vi
|
|
.Pp
|
|
Most commands have a shorter form, known as an alias.
|
|
For new-session, this is
|
|
.Ic new :
|
|
.Pp
|
|
.Dl $ tmux new vi
|
|
.Pp
|
|
Alternatively, the shortest unambiguous form of a command is accepted.
|
|
If there are several options, they are listed:
|
|
.Bd -literal -offset indent
|
|
$ tmux n
|
|
ambiguous command: n, could be: new-session, new-window, next-window
|
|
$
|
|
.Ed
|
|
.Pp
|
|
Within an active session, a new window may be created by typing
|
|
.Ql ^B
|
|
(ctrl-B, known as the prefix key)
|
|
followed by the
|
|
.Ql c
|
|
key.
|
|
.Pp
|
|
Windows may be navigated with:
|
|
.Ql ^B 0
|
|
(to select window 0),
|
|
.Ql ^B 1
|
|
(to select window 1), and so on;
|
|
.Ql ^B n
|
|
to select the next window; and
|
|
.Ql ^B p
|
|
to select the previous window.
|
|
.Pp
|
|
A session may be detached using
|
|
.Ql ^B d
|
|
and reattached with:
|
|
.Pp
|
|
.Dl $ tmux attach-session
|
|
.Pp
|
|
Typing
|
|
.Ql ^B \&?
|
|
lists the current key bindings in the current window; up and down may be used
|
|
to navigate the list or
|
|
.Ql Q
|
|
to exit from it.
|
|
.Sh KEY BINDINGS
|
|
.Nm
|
|
may be controlled from an attached client by using a key combination of a
|
|
prefix,
|
|
.Ql ^B
|
|
(ctrl-B) by default, followed by a command key.
|
|
.Pp
|
|
Some of the default key bindings include:
|
|
.Pp
|
|
.Bl -tag -width Ds -compact
|
|
.It Ql d
|
|
Detach current client.
|
|
.It Ql c
|
|
Create new window.
|
|
.It Ql n
|
|
Change to next window in the current session.
|
|
.It Ql p
|
|
Change to previous window in the current session.
|
|
.It Ql l
|
|
Move to last (previously selected) window in the current session.
|
|
.It Ql \&?
|
|
List current key bindings.
|
|
.El
|
|
.Pp
|
|
A complete list may be obtained with the
|
|
.Ic list-keys
|
|
command (bound to
|
|
.Ql \&?
|
|
by default). Key bindings may be changed with the
|
|
.Ic bind-key
|
|
and
|
|
.Ic unbind-key
|
|
commands.
|
|
.Sh HISTORY
|
|
.Nm
|
|
maintains a configurable history buffer for each window.
|
|
By default, up to 2000 lines are kept, this can be altered with the
|
|
.Ic history-limit
|
|
option (see the
|
|
.Ic set-option
|
|
command below).
|
|
.Sh MODES
|
|
A
|
|
.Nm
|
|
window may be in one of several modes.
|
|
The default permits direct access to the terminal attached to the window.
|
|
The others are:
|
|
.Bl -tag -width Ds
|
|
.It Em output mode
|
|
This is entered when a command which produces output, such as
|
|
.Ic list-keys ,
|
|
is executed from a key binding.
|
|
The
|
|
.Ql up ,
|
|
.Ql down ,
|
|
.Ql page-up
|
|
and
|
|
.Ql page-down
|
|
keys or
|
|
.Xr vi 1
|
|
style
|
|
.Ql j ,
|
|
.Ql k ,
|
|
keys may be used to scroll the output up and down.
|
|
The
|
|
.Ql q
|
|
key will exit output mode.
|
|
.It Em scroll mode
|
|
This is entered with the
|
|
.Ic scroll-mode
|
|
command (bound to
|
|
.Ql =
|
|
by default) and permits the window history buffer to be inspected.
|
|
In addition to the commands supported by output mode, the left and right arrow
|
|
keys, or
|
|
.Ql h
|
|
and
|
|
.Ql l ,
|
|
will scroll left and right.
|
|
.It Em copy mode
|
|
This is permits a section of a window or its history to be copied to the
|
|
.Em paste buffer
|
|
for later insertion into another window.
|
|
The navigation keys move the cursor around the window, scrolling as necessary.
|
|
In addition,
|
|
.Ql ^A
|
|
and
|
|
.Ql ^E
|
|
move to the start and end of the line; the space key begins a selection; and the
|
|
enter key or
|
|
.Ql ^W
|
|
copies the selection to the paste buffer and exits copy mode.
|
|
.Pp
|
|
This mode is entered with the
|
|
.Ic copy-mode
|
|
command, bound to
|
|
.Ql [
|
|
by default.
|
|
.El
|
|
.Sh COMMANDS
|
|
This section contains a list of the commands supported by
|
|
.Nm .
|
|
There are some flags shared by several commands; these are:
|
|
.Bl -tag -width "XXXXXXXXXXXX"
|
|
.It Fl c Ar client-tty
|
|
Apply command to the client on the given tty.
|
|
Clients may be listed with the
|
|
.Ic list-clients
|
|
command.
|
|
.It Fl s Ar session-name
|
|
Apply command to the session named
|
|
.Ar session-name .
|
|
If it is omitted and
|
|
.Nm
|
|
is invoked from a running
|
|
.Nm
|
|
client, the session the containing client is connected to will be used;
|
|
otherwise, if only one session exists, it is chosen, or if multiple sessions
|
|
exist, an error is generated.
|
|
.El
|
|
.Pp
|
|
The following commands are available:
|
|
.Bl -tag -width Ds
|
|
.It Xo Ic attach-session
|
|
.Op Fl d
|
|
.Op Fl s Ar session-name
|
|
.Xc
|
|
.D1 (alias: Ic attach )
|
|
Create a new client in the current terminal and attach it to a session.
|
|
If
|
|
.Fl d
|
|
is specified, any other clients attached to the session are detached.
|
|
.It Xo Ic bind-key
|
|
.Ar key Ar command Op Ar arguments
|
|
.Xc
|
|
.D1 (alias: Ic bind )
|
|
Bind key
|
|
.Ar key
|
|
to
|
|
.Ar command .
|
|
.It Xo Ic copy-mode
|
|
.Op Fl s Ar session-name
|
|
.Xc
|
|
Enter copy mode.
|
|
.It Xo Ic detach-client
|
|
.Op Fl c Ar client-tty
|
|
.Xc
|
|
.D1 (alias: Ic detach )
|
|
Detach the current client if bound to a key, or the specified client with
|
|
.Fl c .
|
|
.It Xo Ic has-session
|
|
.Op Fl s Ar session-name
|
|
.Xc
|
|
.D1 (alias: Ic has )
|
|
Report an error and exit with 1 if the specified session does not exist. If it
|
|
does exist, exit with 0.
|
|
.It Xo Ic kill-server
|
|
.Xc
|
|
Kill the
|
|
.Nm
|
|
server and clients and destroy all sessions.
|
|
.It Xo Ic kill-session
|
|
.Op Fl s Ar session-name
|
|
.Xc
|
|
Destroy the given session, closing any windows linked to it and no other
|
|
sessions, and detaching all clients attached to it.
|
|
.It Xo Ic kill-window
|
|
.Op Fl i Ar index
|
|
.Op Fl s Ar session-name
|
|
.Xc
|
|
.D1 (alias: Ic killw )
|
|
Kill the current window or the window at
|
|
.Ar index ,
|
|
removing it from any sessions to which it is linked.
|
|
.It Xo Ic last-window
|
|
.Op Fl s Ar session-name
|
|
.Xc
|
|
.D1 (alias: Ic last )
|
|
Select the last (previously selected) window.
|
|
.It Xo Ic link-window
|
|
.Op Fl dk
|
|
.Op Fl i Ar index
|
|
.Op Fl s Ar session-name
|
|
.Ar source-name Ar source-index
|
|
.Xc
|
|
.D1 (alias: Ic linkw )
|
|
Link the window at
|
|
.Ar source-index
|
|
in session
|
|
.Ar source-name
|
|
into the specified session. If
|
|
.Ar index
|
|
is specified and no window exists with that index, the window is linked at
|
|
that index.
|
|
If
|
|
.Fl k
|
|
is given and a window exists at
|
|
.Ar index ,
|
|
it is killed, otherwise an error is generated.
|
|
If
|
|
.Fl d
|
|
is given, the newly linked window is not selected.
|
|
.It Xo Ic list-clients
|
|
.Xc
|
|
.D1 (alias: Ic lsc )
|
|
List all clients attached to the server.
|
|
.It Xo Ic list-keys
|
|
.Xc
|
|
.D1 (alias: Ic lsk )
|
|
List all key bindings.
|
|
.It Xo Ic list-sessions
|
|
.Xc
|
|
.D1 (alias: Ic ls )
|
|
List all sessions managed by the server.
|
|
.It Xo Ic list-windows
|
|
.Op Fl s Ar session-name
|
|
.Xc
|
|
.D1 (alias: Ic lsw )
|
|
List all windows.
|
|
.It Xo Ic new-session
|
|
.Op Fl d
|
|
.Op Fl n Ar window-name
|
|
.Op Fl s Ar session-name
|
|
.Op Ar command
|
|
.Xc
|
|
.D1 (alias: Ic new )
|
|
Create a new session with name
|
|
.Ar session-name .
|
|
The new session is attached to the current terminal unless
|
|
.Fl d
|
|
is given.
|
|
.Ar window-name
|
|
and
|
|
.Ar command
|
|
are the name of and command to execute in the initial window.
|
|
.It Xo Ic new-window
|
|
.Op Fl d
|
|
.Op Fl i Ar index
|
|
.Op Fl n Ar name
|
|
.Op Fl s Ar session-name
|
|
.Op Ar command
|
|
.Xc
|
|
.D1 (alias: Ic neww )
|
|
Create a new window. If
|
|
.Fl d
|
|
is given, the session does not make the new window the current window.
|
|
.Ar index
|
|
and
|
|
.Ar name
|
|
are the index of the new window in the session and the name of the new window.
|
|
.Ar command
|
|
is the command to execute.
|
|
If
|
|
.Ar index
|
|
is not specified, the first free index is used.
|
|
If
|
|
.Ar command
|
|
is not specified, the default command is used.
|
|
.Pp
|
|
The
|
|
.Ev TERM
|
|
environment variable must be set to
|
|
.Dq screen
|
|
for all program running
|
|
.Em inside
|
|
.Nm .
|
|
New windows will automatically have
|
|
.Dq TERM=screen
|
|
added to their environment, but care must be taken not to reset this in shell
|
|
start-up files.
|
|
.It Xo Ic next-window
|
|
.Op Fl s Ar session-name
|
|
.Xc
|
|
.D1 (alias: Ic next )
|
|
Move to the next window in the session.
|
|
.It Xo Ic paste-buffer
|
|
.Op Fl s Ar session-name
|
|
.Xc
|
|
.D1 (alias: Ic paste )
|
|
Insert the contents of the paste buffer into the current window.
|
|
Ignored unless executed via a key binding.
|
|
.It Xo Ic previous-window
|
|
.Op Fl s Ar session-name
|
|
.Xc
|
|
.D1 (alias: Ic prev )
|
|
Move to the previous window in the session.
|
|
.It Xo Ic refresh-client
|
|
.Op Fl c Ar client-tty
|
|
.Xc
|
|
.D1 (alias: Ic refresh )
|
|
Refresh the current client if bound to a key, or a single client if one given
|
|
with
|
|
.Fl c .
|
|
.It Xo Ic rename-session
|
|
.Op Fl s Ar session-name
|
|
.Ar new-name
|
|
.Xc
|
|
.D1 (alias: Ic rename )
|
|
Rename the session to
|
|
.Ar new-name .
|
|
.It Xo Ic rename-window
|
|
.Op Fl i Ar index
|
|
.Op Fl s Ar session-name
|
|
.Ar new-name
|
|
.Xc
|
|
.D1 (alias: Ic renamew )
|
|
Rename the current window, or the window at
|
|
.Ar index
|
|
if specifed, to
|
|
.Ar new-name .
|
|
.It Xo Ic scroll-mode
|
|
.Op Fl s Ar session-name
|
|
.Xc
|
|
Enter scroll mode.
|
|
.It Xo Ic select-window
|
|
.Op Fl s Ar session-name
|
|
.Ar index
|
|
.Xc
|
|
.D1 (alias: Ic selectw )
|
|
Select the window at
|
|
.Ar index .
|
|
.It Xo Ic send-keys
|
|
.Op Fl c Ar client-tty
|
|
.Ar key Ar ...
|
|
.Xc
|
|
Send a key or keys to a window.
|
|
Each argument
|
|
.Ar key
|
|
is the name of the key (such as
|
|
.Ql ^A
|
|
or
|
|
.Ql npage
|
|
) to send; if the string is not recognised as a key, it is sent as a series of
|
|
characters.
|
|
All the arguments are sent sequentially from first to last.
|
|
.It Xo Ic send-prefix
|
|
.Op Fl c Ar client-tty
|
|
.Xc
|
|
Send the prefix key to a window as if it was pressed.
|
|
.It Xo Ic set-option
|
|
.Ar option Ar value
|
|
.Xc
|
|
.D1 (alias: Ic set )
|
|
Set an option. Possible options are:
|
|
.Bl -tag -width Ds
|
|
.It Ic prefix Ar key
|
|
Set the current prefix key.
|
|
.It Ic history-limit Ar lines
|
|
Set the maximum number of lines held in window history.
|
|
This setting applies only to new windows - existing window histories are not
|
|
resized and retain the limit at the point they were created.
|
|
.It Xo Ic status
|
|
.Op Ic on | Ic off
|
|
.Xc
|
|
Show or hide the status line.
|
|
.It Ic status-fg Ar colour
|
|
Set status line foreground colour, where
|
|
.Ar colour
|
|
is one of:
|
|
.Ic black ,
|
|
.Ic red ,
|
|
.Ic green ,
|
|
.Ic yellow ,
|
|
.Ic blue ,
|
|
.Ic magenta ,
|
|
.Ic cyan ,
|
|
.Ic white
|
|
or
|
|
.Ic default .
|
|
.It Ic status-bg Ar colour
|
|
Set status line background colour.
|
|
.It Xo Ic bell-action
|
|
.Op Ic any | Ic none | Ic current
|
|
.Xc
|
|
Set action on window bell.
|
|
.Ic any
|
|
means a bell in any window linked to a session causes a bell in the current
|
|
window of that session,
|
|
.Ic none
|
|
means all bells are ignored and
|
|
.Ic current
|
|
means only bell in windows other than the current window are ignored.
|
|
.It Ic default-command Ar command
|
|
Sets the command used for new windows (if not specified when the window is
|
|
created) to
|
|
.Ar command .
|
|
The default is
|
|
.Dq exec $SHELL .
|
|
.El
|
|
.It Xo Ic start-server
|
|
.Xc
|
|
Start the
|
|
.Nm
|
|
server, if not already running, without creating any sessions.
|
|
.It Xo Ic swap-window
|
|
.Op Fl i Ar index
|
|
.Op Fl s Ar session-name
|
|
.Ar source-name Ar source-index
|
|
.Xc
|
|
.D1 (alias: Ic swapw )
|
|
This is similar to
|
|
.Ic link-window ,
|
|
except the source and destination windows are swapped.
|
|
It is an error if no window exists at
|
|
.Ar index .
|
|
.It Xo Ic unbind-key
|
|
.Ar key
|
|
.Xc
|
|
.D1 (alias: Ic unbind )
|
|
Unbind the key bound to
|
|
.Ar key .
|
|
.It Xo Ic unlink-window
|
|
.Op Fl i Ar index
|
|
.Op Fl s Ar session-name
|
|
.Xc
|
|
.D1 (alias: Ic unlinkw )
|
|
Unlink the window at
|
|
.Ar index .
|
|
A window may be unlinked only if it is linked to multiple sessions - windows may
|
|
not be linked to no sessions.
|
|
.El
|
|
.Sh SEE ALSO
|
|
.Xr pty 4
|
|
.Sh AUTHORS
|
|
.An Nicholas Marriott Aq nicm@users.sourceforge.net
|