This shows you the differences between two versions of the page.
tmux [2011/01/22 07:30] k2patel |
tmux [2020/08/10 02:35] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== tmux (terminal multiplexer) ====== | ||
- | Good replacement for screen. | ||
- | Following is my own tmux config file.\\ | ||
- | Tried to setup as near as screen. | ||
- | |||
- | <code bash | .tmux.conf> | ||
- | set-option -g prefix C-a | ||
- | unbind-key C-b | ||
- | bind-key C-a "last-window" | ||
- | |||
- | unbind '"' | ||
- | unbind % # Remove default binding since we're replacing | ||
- | bind | split-window -h | ||
- | bind - split-window -v | ||
- | bind '"' list-window | ||
- | |||
- | # Highlight active window | ||
- | set-window-option -g window-status-current-bg blue | ||
- | |||
- | # Rename Based on active names | ||
- | setw -g automatic-rename | ||
- | |||
- | set -g status-right '#[fg=yellow]#(uptime | cut -d "," -f 2-)' | ||
- | |||
- | setw -g monitor-activity on | ||
- | set -g visual-activity on | ||
- | |||
- | # Set status bar | ||
- | set -g status-bg black | ||
- | set -g status-fg white | ||
- | set -g status-left '#[fg=green]#H' | ||
- | </code> | ||
- | |||
- | |||
- | I have copied man page so can refer easily below. | ||
- | <code text> | ||
- | |||
- | SYNOPSIS | ||
- | tmux [-28lquv] [-c shell-command] [-f file] [-L socket-name] | ||
- | [-S socket-path] [command [flags]] | ||
- | |||
- | DESCRIPTION | ||
- | tmux is a terminal multiplexer: it enables a number of terminals to be | ||
- | created, accessed, and controlled from a single screen. tmux may be | ||
- | detached from a screen and continue running in the background, then later | ||
- | reattached. | ||
- | |||
- | When tmux is started it creates a new session with a single window and | ||
- | displays it on screen. A status line at the bottom of the screen shows | ||
- | information on the current session and is used to enter interactive com- | ||
- | mands. | ||
- | |||
- | A session is a single collection of pseudo terminals under the management | ||
- | of tmux. Each session has one or more windows linked to it. A window | ||
- | occupies the entire screen and may be split into rectangular panes, each | ||
- | of which is a separate pseudo terminal (the pty(4) manual page documents | ||
- | the technical details of pseudo terminals). Any number of tmux instances | ||
- | may connect to the same session, and any number of windows may be present | ||
- | in the same session. Once all sessions are killed, tmux exits. | ||
- | |||
- | Each session is persistent and will survive accidental disconnection | ||
- | (such as ssh(1) connection timeout) or intentional detaching (with the | ||
- | 'C-b d' key strokes). tmux may be reattached using: | ||
- | |||
- | $ tmux attach | ||
- | |||
- | In tmux, a session is displayed on screen by a client and all sessions | ||
- | are managed by a single server. The server and each client are separate | ||
- | processes which communicate through a socket in /tmp. | ||
- | |||
- | The options are as follows: | ||
- | |||
- | -2 Force tmux to assume the terminal supports 256 colours. | ||
- | |||
- | -8 Like -2, but indicates that the terminal supports 88 | ||
- | colours. | ||
- | |||
- | -c shell-command | ||
- | Execute shell-command using the default shell. If neces- | ||
- | sary, the tmux server will be started to retrieve the | ||
- | default-shell option. This option is for compatibility | ||
- | with sh(1) when tmux is used as a login shell. | ||
- | |||
- | -f file Specify an alternative configuration file. By default, | ||
- | tmux loads the system configuration file from | ||
- | /etc/tmux.conf, if present, then looks for a user configu- | ||
- | ration file at ~/.tmux.conf. The configuration file is a | ||
- | set of tmux commands which are executed in sequence when | ||
- | the server is first started. | ||
- | |||
- | If a command in the configuration file fails, tmux will | ||
- | report an error and exit without executing further com- | ||
- | mands. | ||
- | |||
- | -L socket-name | ||
- | tmux 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. | ||
- | |||
- | If the socket is accidentally removed, the SIGUSR1 signal | ||
- | may be sent to the tmux server process to recreate it. | ||
- | |||
- | -l Behave as a login shell. This flag currently has no effect | ||
- | and is for compatibility with other shells when using tmux | ||
- | as a login shell. | ||
- | |||
- | -q Set the quiet server option to prevent the server sending | ||
- | various informational messages. | ||
- | |||
- | -S socket-path | ||
- | Specify a full alternative path to the server socket. If | ||
- | -S is specified, the default socket directory is not used | ||
- | and any -L flag is ignored. | ||
- | |||
- | -u tmux attempts to guess if the terminal is likely to support | ||
- | UTF-8 by checking the first of the LC_ALL, LC_CTYPE and | ||
- | LANG environment variables to be set for the string | ||
- | "UTF-8". This is not always correct: the -u flag explic- | ||
- | itly informs tmux that UTF-8 is supported. | ||
- | |||
- | If the server is started from a client passed -u or where | ||
- | UTF-8 is detected, the utf8 and status-utf8 options are | ||
- | enabled in the global window and session options respec- | ||
- | tively. | ||
- | |||
- | -v Request verbose logging. This option may be specified mul- | ||
- | tiple times for increasing verbosity. Log messages will be | ||
- | saved into tmux-client-PID.log and tmux-server-PID.log | ||
- | files in the current directory, where PID is the PID of the | ||
- | server or client process. | ||
- | |||
- | command [flags] | ||
- | This specifies one of a set of commands used to control | ||
- | tmux, as described in the following sections. If no com- | ||
- | mands are specified, the new-session command is assumed. | ||
- | |||
- | KEY BINDINGS | ||
- | 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. | ||
- | |||
- | The default command key bindings are: | ||
- | |||
- | C-b Send the prefix key (C-b) through to the application. | ||
- | C-o Rotate the panes in the current window forwards. | ||
- | C-z Suspend the tmux client. | ||
- | ! Break the current pane out of the window. | ||
- | " Split the current pane into two, top and bottom. | ||
- | # List all paste buffers. | ||
- | % Split the current pane into two, left and right. | ||
- | & Kill the current window. | ||
- | ' Prompt for a window index to select. | ||
- | , Rename the current window. | ||
- | - Delete the most recently copied buffer of text. | ||
- | . Prompt for an index to move the current window. | ||
- | 0 to 9 Select windows 0 to 9. | ||
- | : Enter the tmux command prompt. | ||
- | = Choose which buffer to paste interactively from a list. | ||
- | ? List all key bindings. | ||
- | D Choose a client to detach. | ||
- | [ Enter copy mode to copy text or view the history. | ||
- | ] Paste the most recently copied buffer of text. | ||
- | c Create a new window. | ||
- | d Detach the current client. | ||
- | f Prompt to search for text in open windows. | ||
- | i Display some information about the current window. | ||
- | l Move to the previously selected window. | ||
- | n Change to the next window. | ||
- | o Select the next pane in the current window. | ||
- | p Change to the previous window. | ||
- | q Briefly display pane indexes. | ||
- | r Force redraw of the attached client. | ||
- | s Select a new session for the attached client interac- | ||
- | tively. | ||
- | t Show the time. | ||
- | w Choose the current window interactively. | ||
- | x Kill the current pane. | ||
- | { Swap the current pane with the previous pane. | ||
- | } Swap the current pane with the next pane. | ||
- | ~ Show previous messages from tmux, if any. | ||
- | Page Up Enter copy mode and scroll one page up. | ||
- | Up, Down | ||
- | Left, Right | ||
- | Change to the pane above, below, to the left, or to the | ||
- | right of the current pane. | ||
- | M-1 to M-5 Arrange panes in one of the five preset layouts: even- | ||
- | horizontal, even-vertical, main-horizontal, main-verti- | ||
- | cal, or tiled. | ||
- | M-n Move to the next window with a bell or activity marker. | ||
- | M-o Rotate the panes in the current window backwards. | ||
- | M-p Move to the previous window with a bell or activity | ||
- | marker. | ||
- | C-Up, C-Down | ||
- | C-Left, C-Right | ||
- | Resize the current pane in steps of one cell. | ||
- | M-Up, M-Down | ||
- | M-Left, M-Right | ||
- | Resize the current pane in steps of five cells. | ||
- | |||
- | Key bindings may be changed with the bind-key and unbind-key commands. | ||
- | |||
- | COMMANDS | ||
- | This section contains a list of the commands supported by tmux. Most | ||
- | commands accept the optional -t argument with one of target-client, | ||
- | target-session target-window, or target-pane. These specify the client, | ||
- | session, window or pane which a command should affect. target-client is | ||
- | the name of the pty(4) file to which the client is connected, for example | ||
- | either of /dev/ttyp1 or ttyp1 for the client attached to /dev/ttyp1. If | ||
- | no client is specified, the current client is chosen, if possible, or an | ||
- | error is reported. 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 with the same syntax as | ||
- | target-client, in which case the session attached to the client is used. | ||
- | When looking for the session name, tmux initially searches for an exact | ||
- | match; if none is found, the session names are checked for any for which | ||
- | target-session is a prefix or for which it matches as an fnmatch(3) pat- | ||
- | tern. If a single match is found, it is used as the target session; mul- | ||
- | tiple matches produce an error. If a session is omitted, the current | ||
- | session is used if available; if no current session is available, the | ||
- | most recently used is chosen. | ||
- | |||
- | target-window specifies a window in the form session:window. session | ||
- | follows the same rules as for target-session, and window is looked for in | ||
- | order: as a window index, for example mysession:1; as an exact window | ||
- | name, such as mysession:mywindow; then as an fnmatch(3) pattern or the | ||
- | start of a window name, such as mysession:mywin* or mysession:mywin. An | ||
- | empty window name specifies the next unused index if appropriate (for | ||
- | example the new-window and link-window commands) otherwise the current | ||
- | window in session is chosen. The special character '!' uses the last | ||
- | (previously current) window, or '+' and '-' are the next window or the | ||
- | previous window by number. When the argument does not contain a colon, | ||
- | tmux first attempts to parse it as window; if that fails, an attempt is | ||
- | made to match a session. | ||
- | |||
- | target-pane takes a similar form to target-window but with the optional | ||
- | addition of a period followed by a pane index, for example: myses- | ||
- | sion:mywindow.1. If the pane index is omitted, the currently active pane | ||
- | in the specified window is used. If neither a colon nor period appears, | ||
- | tmux first attempts to use the argument as a pane index; if that fails, | ||
- | it is looked up as for target-window. A '+' or '-' indicate the next or | ||
- | previous pane index, respectively. One of the strings top, bottom, left, | ||
- | right, top-left, top-right, bottom-left or bottom-right may be used | ||
- | instead of a pane index. | ||
- | |||
- | The special characters '+' and '-' may be followed by an offset, for | ||
- | example: | ||
- | |||
- | select-window -t:+2 | ||
- | |||
- | When dealing with a session that doesn't contain sequential window | ||
- | indexes, they will be correctly skipped. | ||
- | |||
- | shell-command arguments are sh(1) commands. These must be passed as a | ||
- | single item, which typically means quoting them, for example: | ||
- | |||
- | new-window 'vi /etc/passwd' | ||
- | |||
- | command [arguments] refers to a tmux command, passed with the command and | ||
- | arguments separately, for example: | ||
- | |||
- | bind-key F1 set-window-option force-width 81 | ||
- | |||
- | Or if using sh(1): | ||
- | |||
- | $ tmux bind-key F1 set-window-option force-width 81 | ||
- | |||
- | Multiple commands may be specified together as part of a command | ||
- | sequence. Each command should be separated by spaces and a semicolon; | ||
- | commands are executed sequentially from left to right. A literal semi- | ||
- | colon may be included by escaping it with a backslash (for example, when | ||
- | specifying a command sequence to bind-key). | ||
- | |||
- | Example tmux commands include: | ||
- | |||
- | refresh-client -t/dev/ttyp2 | ||
- | |||
- | rename-session -tfirst newname | ||
- | |||
- | set-window-option -t:0 monitor-activity on | ||
- | |||
- | new-window ; split-window -d | ||
- | |||
- | Or from sh(1): | ||
- | |||
- | $ tmux kill-window -t :1 | ||
- | |||
- | $ tmux new-window \; split-window -d | ||
- | |||
- | $ tmux new-session -d 'vi /etc/passwd' \; split-window -d \; attach | ||
- | |||
- | CLIENTS AND SESSIONS | ||
- | The tmux server manages clients, sessions, windows and panes. Clients | ||
- | are attached to sessions to interact with them, either when they are cre- | ||
- | ated with the new-session command, or later with the attach-session com- | ||
- | mand. Each session has one of more windows linked into it. Windows may | ||
- | be linked to multiple sessions and are made up of one or more panes, each | ||
- | of which contains a pseudo terminal. Commands for creating, linking and | ||
- | otherwise manipulating windows are covered in the WINDOWS AND PANES sec- | ||
- | tion. | ||
- | |||
- | The following commands are available to manage clients and sessions: | ||
- | |||
- | attach-session [-dr] [-t target-session] | ||
- | (alias: attach) | ||
- | If run from outside tmux, create a new client in the current ter- | ||
- | minal and attach it to target-session. If used from inside, | ||
- | switch the current client. If -d is specified, any other clients | ||
- | attached to the session are detached. -r signifies the client is | ||
- | read-only (only keys bound to the detach-client command have any | ||
- | effect) | ||
- | |||
- | If no server is started, attach-session will attempt to start it; | ||
- | this will fail unless sessions are created in the configuration | ||
- | file. | ||
- | |||
- | detach-client [-t target-client] | ||
- | (alias: detach) | ||
- | Detach the current client if bound to a key, or the specified | ||
- | client with -t. | ||
- | |||
- | has-session [-t target-session] | ||
- | (alias: has) | ||
- | Report an error and exit with 1 if the specified session does not | ||
- | exist. If it does exist, exit with 0. | ||
- | |||
- | kill-server | ||
- | Kill the tmux server and clients and destroy all sessions. | ||
- | |||
- | kill-session [-t target-session] | ||
- | Destroy the given session, closing any windows linked to it and | ||
- | no other sessions, and detaching all clients attached to it. | ||
- | |||
- | list-clients | ||
- | (alias: lsc) | ||
- | List all clients attached to the server. | ||
- | |||
- | list-commands | ||
- | (alias: lscm) | ||
- | List the syntax of all commands supported by tmux. | ||
- | |||
- | list-sessions | ||
- | (alias: ls) | ||
- | List all sessions managed by the server. | ||
- | |||
- | lock-client [-t target-client] | ||
- | (alias: lockc) | ||
- | Lock target-client, see the lock-server command. | ||
- | |||
- | lock-session [-t target-session] | ||
- | (alias: locks) | ||
- | Lock all clients attached to target-session. | ||
- | |||
- | new-session [-d] [-n window-name] [-s session-name] [-t target-session] | ||
- | [shell-command] | ||
- | (alias: new) | ||
- | Create a new session with name session-name. | ||
- | |||
- | The new session is attached to the current terminal unless -d is | ||
- | given. window-name and shell-command are the name of and shell | ||
- | command to execute in the initial window. | ||
- | |||
- | If run from a terminal, any termios(4) special characters are | ||
- | saved and used for new windows in the new session. | ||
- | |||
- | If -t is given, the new session is grouped with target-session. | ||
- | This means they share the same set of windows - all windows from | ||
- | target-session are linked to the new session and any subsequent | ||
- | new windows or windows being closed are applied to both sessions. | ||
- | The current and previous window and any session options remain | ||
- | independent and either session may be killed without affecting | ||
- | the other. Giving -n or shell-command are invalid if -t is used. | ||
- | |||
- | refresh-client [-t target-client] | ||
- | (alias: refresh) | ||
- | Refresh the current client if bound to a key, or a single client | ||
- | if one is given with -t. | ||
- | |||
- | rename-session [-t target-session] new-name | ||
- | (alias: rename) | ||
- | Rename the session to new-name. | ||
- | |||
- | show-messages [-t target-client] | ||
- | (alias: showmsgs) | ||
- | Any messages displayed on the status line are saved in a per- | ||
- | client message log, up to a maximum of the limit set by the | ||
- | message-limit session option for the session attached to that | ||
- | client. This command displays the log for target-client. | ||
- | |||
- | source-file path | ||
- | (alias: source) | ||
- | Execute commands from path. | ||
- | |||
- | start-server | ||
- | (alias: start) | ||
- | Start the tmux server, if not already running, without creating | ||
- | any sessions. | ||
- | |||
- | suspend-client [-c target-client] | ||
- | (alias: suspendc) | ||
- | Suspend a client by sending SIGTSTP (tty stop). | ||
- | |||
- | switch-client [-np] [-c target-client] [-t target-session] | ||
- | (alias: switchc) | ||
- | Switch the current session for client target-client to | ||
- | target-session. If -n or -p is used, the client is moved to the | ||
- | next or previous session respectively. | ||
- | |||
- | WINDOWS AND PANES | ||
- | A tmux window may be in one of several modes. The default permits direct | ||
- | access to the terminal attached to the window. The other is copy mode, | ||
- | which permits a section of a window or its history to be copied to a | ||
- | paste buffer for later insertion into another window. This mode is | ||
- | entered with the copy-mode command, bound to '[' by default. It is also | ||
- | entered when a command that produces output, such as list-keys, is exe- | ||
- | cuted from a key binding. | ||
- | |||
- | The keys available depend on whether emacs or vi mode is selected (see | ||
- | the mode-keys option). The following keys are supported as appropriate | ||
- | for the mode: | ||
- | |||
- | Function vi emacs | ||
- | Back to indentation ^ M-m | ||
- | Bottom of history G M-< | ||
- | Clear selection Escape C-g | ||
- | Copy selection Enter M-w | ||
- | Cursor down j Down | ||
- | Cursor left h Left | ||
- | Cursor right l Right | ||
- | Cursor to bottom line L | ||
- | Cursor to middle line M M-r | ||
- | Cursor to top line H M-R | ||
- | Cursor up k Up | ||
- | Delete entire line d C-u | ||
- | Delete to end of line D C-k | ||
- | End of line $ C-e | ||
- | Go to line : g | ||
- | Half page down C-d M-Down | ||
- | Half page up C-u M-Up | ||
- | Jump forward f f | ||
- | Jump backward F F | ||
- | Jump again ; ; | ||
- | Jump again in reverse , , | ||
- | Next page C-f Page down | ||
- | Next space W | ||
- | Next space, end of word E | ||
- | Next word w | ||
- | Next word end e M-f | ||
- | Paste buffer p C-y | ||
- | Previous page C-b Page up | ||
- | Previous word b M-b | ||
- | Previous space B | ||
- | Quit mode q Escape | ||
- | Rectangle toggle v R | ||
- | Scroll down C-Down or C-e C-Down | ||
- | Scroll up C-Up or C-y C-Up | ||
- | Search again n n | ||
- | Search again in reverse N N | ||
- | Search backward ? C-r | ||
- | Search forward / C-s | ||
- | Start of line 0 C-a | ||
- | Start selection Space C-Space | ||
- | Top of history g M-> | ||
- | Transpose chars C-t | ||
- | |||
- | The next and previous word keys use space and the '-', '_' and '@' char- | ||
- | acters as word delimiters by default, but this can be adjusted by setting | ||
- | the word-separators window option. Next word moves to the start of the | ||
- | next word, next word end to the end of the next word and previous word to | ||
- | the start of the previous word. The three next and previous space keys | ||
- | work similarly but use a space alone as the word separator. | ||
- | |||
- | The jump commands enable quick movement within a line. For instance, | ||
- | typing 'f' followed by '/' will move the cursor to the next '/' character | ||
- | on the current line. A ';' will then jump to the next occurrence. | ||
- | |||
- | Commands in copy mode may be prefaced by an optional repeat count. With | ||
- | vi key bindings, a prefix is entered using the number keys; with emacs, | ||
- | the Alt (meta) key and a number begins prefix entry. For example, to | ||
- | move the cursor forward by ten words, use 'M-1 0 M-f' in emacs mode, and | ||
- | '10w' in vi. | ||
- | |||
- | Mode key bindings are defined in a set of named tables: vi-edit and | ||
- | emacs-edit for keys used when line editing at the command prompt; | ||
- | vi-choice and emacs-choice for keys used when choosing from lists (such | ||
- | as produced by the choose-window command); and vi-copy and emacs-copy | ||
- | used in copy mode. The tables may be viewed with the list-keys command | ||
- | and keys modified or removed with bind-key and unbind-key. | ||
- | |||
- | The paste buffer key pastes the first line from the top paste buffer on | ||
- | the stack. | ||
- | |||
- | The synopsis for the copy-mode command is: | ||
- | |||
- | copy-mode [-u] [-t target-pane] | ||
- | Enter copy mode. The -u option scrolls one page up. | ||
- | |||
- | Each window displayed by 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. Windows | ||
- | may be split horizontally (with the -h flag) or vertically. Panes may be | ||
- | resized with the resize-pane command (bound to 'C-up', 'C-down' 'C-left' | ||
- | and 'C-right' by default), the current pane may be changed with the | ||
- | select-pane command and the rotate-window and swap-pane commands may be | ||
- | used to swap panes without changing their position. Panes are numbered | ||
- | beginning from zero in the order they are created. | ||
- | |||
- | A number of preset layouts are available. These may be selected with the | ||
- | select-layout command or cycled with next-layout (bound to 'Space' by | ||
- | default); once a layout is chosen, panes within it may be moved and | ||
- | resized as normal. | ||
- | |||
- | The following layouts are supported: | ||
- | |||
- | even-horizontal | ||
- | Panes are spread out evenly from left to right across the window. | ||
- | |||
- | even-vertical | ||
- | Panes are spread evenly from top to bottom. | ||
- | |||
- | main-horizontal | ||
- | A large (main) pane is shown at the top of the window and the | ||
- | remaining panes are spread from left to right in the leftover | ||
- | space at the bottom. Use the main-pane-height window option to | ||
- | specify the height of the top pane. | ||
- | |||
- | main-vertical | ||
- | Similar to main-horizontal but the large pane is placed on the | ||
- | left and the others spread from top to bottom along the right. | ||
- | See the main-pane-width window option. | ||
- | |||
- | tiled Panes are spread out as evenly as possible over the window in | ||
- | both rows and columns. | ||
- | |||
- | In addition, select-layout may be used to apply a previously used layout | ||
- | - the list-windows command displays the layout of each window in a form | ||
- | suitable for use with select-layout. For example: | ||
- | |||
- | $ tmux list-windows | ||
- | 0: ksh [159x48] | ||
- | layout: bb62,159x48,0,0{79x48,0,0,79x48,80,0} | ||
- | $ tmux select-layout bb62,159x48,0,0{79x48,0,0,79x48,80,0} | ||
- | tmux automatically adjusts the size of the layout for the current window | ||
- | size. Note that a layout cannot be applied to a window with more panes | ||
- | than that from which the layout was originally defined. | ||
- | |||
- | Commands related to windows and panes are as follows: | ||
- | |||
- | break-pane [-d] [-t target-pane] | ||
- | (alias: breakp) | ||
- | Break target-pane off from its containing window to make it the | ||
- | only pane in a new window. If -d is given, the new window does | ||
- | not become the current window. | ||
- | |||
- | capture-pane [-b buffer-index] [-t target-pane] | ||
- | (alias: capturep) | ||
- | Capture the contents of a pane to the specified buffer, or a new | ||
- | buffer if none is specified. | ||
- | |||
- | choose-client [-t target-window] [template] | ||
- | Put a window into client choice mode, allowing a client to be | ||
- | selected interactively from a list. After a client is chosen, | ||
- | '%%' is replaced by the client pty(4) path in template and the | ||
- | result executed as a command. If template is not given, "detach- | ||
- | client -t '%%'" is used. This command works only from inside | ||
- | tmux. | ||
- | |||
- | choose-session [-t target-window] [template] | ||
- | Put a window into session choice mode, where a session may be | ||
- | selected interactively from a list. When one is chosen, '%%' is | ||
- | replaced by the session name in template and the result executed | ||
- | as a command. If template is not given, "switch-client -t '%%'" | ||
- | is used. This command works only from inside tmux. | ||
- | |||
- | choose-window [-t target-window] [template] | ||
- | Put a window into window choice mode, where a window may be cho- | ||
- | sen interactively from a list. After a window is selected, '%%' | ||
- | is replaced by the session name and window index in template and | ||
- | the result executed as a command. If template is not given, | ||
- | "select-window -t '%%'" is used. This command works only from | ||
- | inside tmux. | ||
- | |||
- | display-panes [-t target-client] | ||
- | (alias: displayp) | ||
- | Display a visible indicator of each pane shown by target-client. | ||
- | See the display-panes-time, display-panes-colour, and | ||
- | display-panes-active-colour session options. While the indicator | ||
- | is on screen, a pane may be selected with the '0' to '9' keys. | ||
- | |||
- | find-window [-t target-window] match-string | ||
- | (alias: findw) | ||
- | Search for the fnmatch(3) pattern match-string in window names, | ||
- | titles, and visible content (but not history). If only one win- | ||
- | dow is matched, it'll be automatically selected, otherwise a | ||
- | choice list is shown. This command only works from inside tmux. | ||
- | |||
- | join-pane [-dhv] [-l size | -p percentage] [-s src-pane] [-t dst-pane] | ||
- | (alias: joinp) | ||
- | Like split-window, but instead of splitting dst-pane and creating | ||
- | a new pane, split it and move src-pane into the space. This can | ||
- | be used to reverse break-pane. | ||
- | |||
- | kill-pane [-a] [-t target-pane] | ||
- | (alias: killp) | ||
- | Destroy the given pane. If no panes remain in the containing | ||
- | window, it is also destroyed. The -a option kills all but the | ||
- | pane given with -t. | ||
- | |||
- | kill-window [-t target-window] | ||
- | (alias: killw) | ||
- | Kill the current window or the window at target-window, removing | ||
- | it from any sessions to which it is linked. | ||
- | |||
- | last-window [-t target-session] | ||
- | (alias: last) | ||
- | Select the last (previously selected) window. If no | ||
- | target-session is specified, select the last window of the cur- | ||
- | rent session. | ||
- | |||
- | link-window [-dk] [-s src-window] [-t dst-window] | ||
- | (alias: linkw) | ||
- | Link the window at src-window to the specified dst-window. If | ||
- | dst-window is specified and no such window exists, the src-window | ||
- | is linked there. If -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-panes [-t target-window] | ||
- | (alias: lsp) | ||
- | List the panes in the current window or in target-window. | ||
- | |||
- | list-windows [-t target-session] | ||
- | (alias: lsw) | ||
- | List windows in the current session or in target-session. | ||
- | |||
- | move-window [-dk] [-s src-window] [-t dst-window] | ||
- | (alias: movew) | ||
- | This is similar to link-window, except the window at src-window | ||
- | is moved to dst-window. | ||
- | |||
- | new-window [-adk] [-n window-name] [-t target-window] [shell-command] | ||
- | (alias: neww) | ||
- | Create a new window. With -a, the new window is inserted at the | ||
- | next index up from the specified target-window, moving windows up | ||
- | if necessary, otherwise target-window is the new window location. | ||
- | |||
- | If -d is given, the session does not make the new window the cur- | ||
- | rent window. target-window represents the window to be created; | ||
- | if the target already exists an error is shown, unless the -k | ||
- | flag is used, in which case it is destroyed. shell-command is | ||
- | the command to execute. If shell-command is not specified, the | ||
- | value of the default-command option is used. | ||
- | |||
- | When the shell command completes, the window closes. See the | ||
- | remain-on-exit option to change this behaviour. | ||
- | |||
- | 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] | ||
- | (alias: nextl) | ||
- | Move a window to the next layout and rearrange the panes to fit. | ||
- | |||
- | next-window [-a] [-t target-session] | ||
- | (alias: next) | ||
- | Move to the next window in the session. If -a is used, move to | ||
- | the next window with a bell, activity or content alert. | ||
- | |||
- | pipe-pane [-o] [-t target-pane] [shell-command] | ||
- | (alias: pipep) | ||
- | Pipe any output sent by the program in target-pane to a shell | ||
- | command. A pane may only be piped to one command at a time, any | ||
- | existing pipe is closed before shell-command is executed. The | ||
- | shell-command string may contain the special character sequences | ||
- | supported by the status-left command. If no shell-command is | ||
- | given, the current pipe (if any) is closed. | ||
- | |||
- | The -o option only opens a new pipe if no previous pipe exists, | ||
- | allowing a pipe to be toggled with a single key, for example: | ||
- | |||
- | bind-key C-p pipe-pane -o 'cat >>~/output.#I-#P' | ||
- | |||
- | previous-layout [-t target-window] | ||
- | (alias: prevl) | ||
- | Move to the previous layout in the session. | ||
- | |||
- | previous-window [-a] [-t target-session] | ||
- | (alias: prev) | ||
- | Move to the previous window in the session. With -a, move to the | ||
- | previous window with a bell, activity or content alert. | ||
- | |||
- | rename-window [-t target-window] new-name | ||
- | (alias: renamew) | ||
- | Rename the current window, or the window at target-window if | ||
- | specified, to new-name. | ||
- | |||
- | resize-pane [-DLRU] [-t target-pane] [adjustment] | ||
- | (alias: resizep) | ||
- | Resize a pane, upward with -U (the default), downward with -D, to | ||
- | the left with -L and to the right with -R. The adjustment is | ||
- | given in lines or cells (the default is 1). | ||
- | |||
- | respawn-window [-k] [-t target-window] [shell-command] | ||
- | (alias: respawnw) | ||
- | Reactivate a window in which the command has exited (see the | ||
- | remain-on-exit window option). If shell-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] | ||
- | (alias: rotatew) | ||
- | Rotate the positions of the panes within a window, either upward | ||
- | (numerically lower) with -U or downward (numerically higher). | ||
- | |||
- | select-layout [-t target-window] [layout-name] | ||
- | (alias: selectl) | ||
- | Choose a specific layout for a window. If layout-name is not | ||
- | given, the last preset layout used (if any) is reapplied. | ||
- | |||
- | select-pane [-DLRU] [-t target-pane] | ||
- | (alias: selectp) | ||
- | Make pane target-pane the active pane in window target-window. | ||
- | If one of -D, -L, -R, or -U is used, respectively the pane below, | ||
- | to the left, to the right, or above the target pane is used. | ||
- | |||
- | select-window [-t target-window] | ||
- | (alias: selectw) | ||
- | Select the window at target-window. | ||
- | |||
- | split-window [-dhv] [-l size | -p percentage] [-t target-pane] | ||
- | [shell-command] | ||
- | (alias: splitw) | ||
- | Create a new pane by splitting target-pane: -h does a horizontal | ||
- | split and -v a vertical split; if neither is specified, -v is | ||
- | assumed. The -l and -p options specify the size of the new pane | ||
- | in lines (for vertical split) or in cells (for horizontal split), | ||
- | or as a percentage, respectively. All other options have the | ||
- | same meaning as for the new-window command. | ||
- | |||
- | swap-pane [-dDU] [-s src-pane] [-t dst-pane] | ||
- | (alias: swapp) | ||
- | Swap two panes. If -U is used and no source pane is specified | ||
- | with -s, dst-pane is swapped with the previous pane (before it | ||
- | numerically); -D swaps with the next pane (after it numerically). | ||
- | -d instructs tmux not to change the active pane. | ||
- | |||
- | swap-window [-d] [-s src-window] [-t dst-window] | ||
- | (alias: swapw) | ||
- | This is similar to link-window, except the source and destination | ||
- | windows are swapped. It is an error if no window exists at | ||
- | src-window. | ||
- | |||
- | unlink-window [-k] [-t target-window] | ||
- | (alias: unlinkw) | ||
- | Unlink target-window. Unless -k is given, a window may be | ||
- | unlinked only if it is linked to multiple sessions - windows may | ||
- | not be linked to no sessions; if -k is specified and the window | ||
- | is linked to only one session, it is unlinked and destroyed. | ||
- | |||
- | KEY BINDINGS | ||
- | tmux allows a command to be bound to most keys, with or without a prefix | ||
- | key. When specifying keys, most represent themselves (for example 'A' to | ||
- | 'Z'). Ctrl keys may be prefixed with 'C-' or '^', and Alt (meta) with | ||
- | 'M-'. In addition, the following special key names are accepted: Up, | ||
- | Down, Left, Right, BSpace, BTab, DC (Delete), End, Enter, Escape, F1 to | ||
- | F20, Home, IC (Insert), NPage (Page Up), PPage (Page Down), Space, and | ||
- | Tab. Note that to bind the '"' or ''' keys, quotation marks are neces- | ||
- | sary, for example: | ||
- | |||
- | bind-key '"' split-window | ||
- | bind-key "'" new-window | ||
- | |||
- | Commands related to key bindings are as follows: | ||
- | |||
- | bind-key [-cnr] [-t key-table] key command [arguments] | ||
- | (alias: bind) | ||
- | Bind key key to command. By default (without -t) the primary key | ||
- | bindings are modified (those normally activated with the prefix | ||
- | key); in this case, if -n is specified, it is not necessary to | ||
- | use the prefix key, command is bound to key alone. The -r flag | ||
- | indicates this key may repeat, see the repeat-time option. | ||
- | |||
- | If -t is present, key is bound in key-table: the binding for com- | ||
- | mand mode with -c or for normal mode without. To view the | ||
- | default bindings and possible commands, see the list-keys com- | ||
- | mand. | ||
- | |||
- | list-keys [-t key-table] | ||
- | (alias: lsk) | ||
- | List all key bindings. Without -t the primary key bindings - | ||
- | those executed when preceded by the prefix key - are printed. | ||
- | Keys bound without the prefix key (see bind-key -n) are marked | ||
- | with '(no prefix)'. | ||
- | |||
- | With -t, the key bindings in key-table are listed; this may be | ||
- | one of: vi-edit, emacs-edit, vi-choice, emacs-choice, vi-copy or | ||
- | emacs-copy. | ||
- | |||
- | send-keys [-t target-pane] key ... | ||
- | (alias: send) | ||
- | Send a key or keys to a window. Each argument key is the name of | ||
- | the key (such as '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-pane] | ||
- | Send the prefix key to a window as if it was pressed. If multi- | ||
- | ple prefix keys are configured, only the first is sent. | ||
- | |||
- | unbind-key [-cn] [-t key-table] key | ||
- | (alias: unbind) | ||
- | Unbind the command bound to key. Without -t the primary key | ||
- | bindings are modified; in this case, if -n is specified, the com- | ||
- | mand bound to key without a prefix (if any) is removed. | ||
- | |||
- | If -t is present, key in key-table is unbound: the binding for | ||
- | command mode with -c or for normal mode without. | ||
- | |||
- | OPTIONS | ||
- | The appearance and behaviour of tmux may be modified by changing the | ||
- | value of various options. There are three types of option: server | ||
- | options, session options and window options. | ||
- | |||
- | The tmux server has a set of global options which do not apply to any | ||
- | particular window or session. These are altered with the set-option -s | ||
- | command, or displayed with the show-options -s command. | ||
- | |||
- | In addition, each individual session may have a set of session options, | ||
- | and there is a separate set of global session options. Sessions which do | ||
- | not have a particular option configured inherit the value from the global | ||
- | session options. Session options are set or unset with the set-option | ||
- | command and may be listed with the show-options command. The available | ||
- | server and session options are listed under the set-option command. | ||
- | |||
- | Similarly, a set of window options is attached to each window, and there | ||
- | is a set of global window options from which any unset options are inher- | ||
- | ited. Window options are altered with the set-window-option command and | ||
- | can be listed with the show-window-options command. All window options | ||
- | are documented with the set-window-option command. | ||
- | |||
- | Commands which set options are as follows: | ||
- | |||
- | set-option [-agsuw] [-t target-session | target-window] option value | ||
- | (alias: set) | ||
- | Set a window option with -w (equivalent to the set-window-option | ||
- | command), a server option with -s, otherwise a session option. | ||
- | |||
- | If -g is specified, the global session or window option is set. | ||
- | With -a, and if the option expects a string, value is appended to | ||
- | the existing setting. 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. | ||
- | |||
- | Available window options are listed under set-window-option. | ||
- | |||
- | Available server options are: | ||
- | |||
- | detach-on-destroy | ||
- | If on (the default), the client is detached when the ses- | ||
- | sion it is attached to is destroyed. If off, the client | ||
- | is switched to the most recently active of the remaining | ||
- | sessions. | ||
- | |||
- | escape-time | ||
- | Set the time in milliseconds for which tmux waits after | ||
- | an escape is input to determine if it is part of a func- | ||
- | tion or meta key sequences. The default is 500 millisec- | ||
- | onds. | ||
- | |||
- | quiet Enable or disable the display of various informational | ||
- | messages (see also the -q command line flag). | ||
- | |||
- | Available session options are: | ||
- | |||
- | base-index index | ||
- | Set the base index from which an unused index should be | ||
- | searched when a new window is created. The default is | ||
- | zero. | ||
- | |||
- | bell-action [any | none | current] | ||
- | Set action on window bell. any means a bell in any win- | ||
- | dow linked to a session causes a bell in the current win- | ||
- | dow 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 number | ||
- | Set the number of buffers kept for each session; as new | ||
- | buffers are added to the top of the stack, old ones are | ||
- | removed from the bottom if necessary to maintain this | ||
- | maximum length. | ||
- | |||
- | default-command shell-command | ||
- | Set the command used for new windows (if not specified | ||
- | when the window is created) to shell-command, which may | ||
- | be any sh(1) command. The default is an empty string, | ||
- | which instructs tmux to create a login shell using the | ||
- | value of the default-shell option. | ||
- | |||
- | default-shell path | ||
- | Specify the default shell. This is used as the login | ||
- | shell for new windows when the default-command option is | ||
- | set to empty, and must be the full path of the exe- | ||
- | cutable. When started tmux tries to set a default value | ||
- | from the first suitable of the SHELL environment vari- | ||
- | able, the shell returned by getpwuid(3), or /bin/sh. | ||
- | This option should be configured when tmux is used as a | ||
- | login shell. | ||
- | |||
- | default-path path | ||
- | Set the default working directory for processes created | ||
- | from keys, or interactively from the prompt. The default | ||
- | is empty, which means to use the working directory of the | ||
- | shell from which the server was started if it is avail- | ||
- | able or the user's home if not. | ||
- | |||
- | default-terminal terminal | ||
- | Set the default terminal for new windows created in this | ||
- | session - the default value of the TERM environment vari- | ||
- | able. For tmux to work correctly, this must be set to | ||
- | 'screen' or a derivative of it. | ||
- | |||
- | display-panes-active-colour colour | ||
- | Set the colour used by the display-panes command to show | ||
- | the indicator for the active pane. | ||
- | |||
- | display-panes-colour colour | ||
- | Set the colour used by the display-panes command to show | ||
- | the indicators for inactive panes. | ||
- | |||
- | display-panes-time time | ||
- | Set the time in milliseconds for which the indicators | ||
- | shown by the display-panes command appear. | ||
- | |||
- | display-time time | ||
- | Set the amount of time for which status line messages and | ||
- | other on-screen indicators are displayed. time is in | ||
- | milliseconds. | ||
- | |||
- | history-limit lines | ||
- | Set the maximum number of lines held in window history. | ||
- | This setting applies only to new windows - existing win- | ||
- | dow histories are not resized and retain the limit at the | ||
- | point they were created. | ||
- | |||
- | lock-after-time number | ||
- | Lock the session (like the lock-session command) after | ||
- | number seconds of inactivity, or the entire server (all | ||
- | sessions) if the lock-server option is set. The default | ||
- | is not to lock (set to 0). | ||
- | |||
- | lock-command shell-command | ||
- | Command to run when locking each client. The default is | ||
- | to run lock(1) with -np. | ||
- | |||
- | lock-server [on | off] | ||
- | If this option is on (the default), instead of each ses- | ||
- | sion locking individually as each has been idle for | ||
- | lock-after-time, the entire server will lock after all | ||
- | sessions would have locked. This has no effect as a ses- | ||
- | sion option; it must be set as a global option. | ||
- | |||
- | message-attr attributes | ||
- | Set status line message attributes, where attributes is | ||
- | either none or a comma-delimited list of one or more of: | ||
- | bright (or bold), dim, underscore, blink, reverse, | ||
- | hidden, or italics. | ||
- | |||
- | message-bg colour | ||
- | Set status line message background colour, where colour | ||
- | is one of: black, red, green, yellow, blue, magenta, | ||
- | cyan, white, colour0 to colour255 from the 256-colour | ||
- | palette, or default. | ||
- | |||
- | message-fg colour | ||
- | Set status line message foreground colour. | ||
- | |||
- | message-limit number | ||
- | Set the number of error or information messages to save | ||
- | in the message log for each client. The default is 20. | ||
- | |||
- | mouse-select-pane [on | off] | ||
- | If on, tmux captures the mouse and when a window is split | ||
- | into multiple panes the mouse may be used to select the | ||
- | current pane. The mouse click is also passed through to | ||
- | the application as normal. | ||
- | |||
- | pane-border-fg colour | ||
- | |||
- | pane-border-bg colour | ||
- | Set the pane border colour for panes aside from the | ||
- | active pane. | ||
- | |||
- | pane-active-border-fg colour | ||
- | |||
- | pane-active-border-bg colour | ||
- | Set the pane border colour for the currently active pane. | ||
- | |||
- | prefix keys | ||
- | Set the keys accepted as a prefix key. keys is a comma- | ||
- | separated list of key names, each of which individually | ||
- | behave as the prefix key. | ||
- | |||
- | repeat-time time | ||
- | Allow multiple commands to be entered without pressing | ||
- | the prefix-key again in the specified time milliseconds | ||
- | (the default is 500). Whether a key repeats may be set | ||
- | when it is bound using the -r flag to bind-key. Repeat | ||
- | is enabled for the default keys bound to the resize-pane | ||
- | command. | ||
- | |||
- | set-remain-on-exit [on | off] | ||
- | Set the remain-on-exit window option for any windows | ||
- | first created in this session. When this option is true, | ||
- | windows in which the running program has exited do not | ||
- | close, instead remaining open but inactivate. Use the | ||
- | respawn-window command to reactivate such a window, or | ||
- | the kill-window command to destroy it. | ||
- | |||
- | set-titles [on | off] | ||
- | Attempt to set the window title using the \e]2;...\007 | ||
- | xterm code if the terminal appears to be an xterm. This | ||
- | option is off by default. Note that elinks will only | ||
- | attempt to set the window title if the STY environment | ||
- | variable is set. | ||
- | |||
- | set-titles-string string | ||
- | String used to set the window title if set-titles is on. | ||
- | Character sequences are replaced as for the status-left | ||
- | option. | ||
- | |||
- | status [on | off] | ||
- | Show or hide the status line. | ||
- | |||
- | status-attr attributes | ||
- | Set status line attributes. | ||
- | |||
- | status-bg colour | ||
- | Set status line background colour. | ||
- | |||
- | status-fg colour | ||
- | Set status line foreground colour. | ||
- | |||
- | status-interval interval | ||
- | Update the status bar every interval seconds. By | ||
- | default, updates will occur every 15 seconds. A setting | ||
- | of zero disables redrawing at interval. | ||
- | |||
- | status-justify [left | centre | right] | ||
- | Set the position of the window list component of the sta- | ||
- | tus line: left, centre or right justified. | ||
- | |||
- | status-keys [vi | emacs] | ||
- | Use vi or emacs-style key bindings in the status line, | ||
- | for example at the command prompt. Defaults to emacs. | ||
- | |||
- | status-left string | ||
- | Display string to the left of the status bar. string | ||
- | will be passed through strftime(3) before being used. By | ||
- | default, the session name is shown. string may contain | ||
- | any of the following special character sequences: | ||
- | |||
- | Character pair Replaced with | ||
- | #(shell-command) First line of the command's | ||
- | output | ||
- | #[attributes] Colour or attribute change | ||
- | #H Hostname of local host | ||
- | #F Current window flag | ||
- | #I Current window index | ||
- | #P Current pane index | ||
- | #S Session name | ||
- | #T Current window title | ||
- | #W Current window name | ||
- | ## A literal '#' | ||
- | |||
- | The #(shell-command) form executes 'shell-command' and | ||
- | inserts the first line of its output. Note that shell | ||
- | commands are only executed once at the interval specified | ||
- | by the status-interval option: if the status line is | ||
- | redrawn in the meantime, the previous result is used. | ||
- | Shell commands are executed with the tmux global environ- | ||
- | ment set (see the ENVIRONMENT section). | ||
- | |||
- | The window title (#T) is the title set by the program | ||
- | running within the window using the OSC title setting | ||
- | sequence, for example: | ||
- | |||
- | $ printf '\033]2;My Title\033\\' | ||
- | |||
- | When a window is first created, its title is the host- | ||
- | name. | ||
- | |||
- | #[attributes] allows a comma-separated list of attributes | ||
- | to be specified, these may be 'fg=colour' to set the | ||
- | foreground colour, 'bg=colour' to set the background | ||
- | colour, the name of one of the attributes (listed under | ||
- | the message-attr option) to turn an attribute on, or an | ||
- | attribute prefixed with 'no' to turn one off, for example | ||
- | nobright. Examples are: | ||
- | |||
- | #(sysctl vm.loadavg) | ||
- | #[fg=yellow,bold]#(apm -l)%%#[default] [#S] | ||
- | |||
- | Where appropriate, special character sequences may be | ||
- | prefixed with a number to specify the maximum length, for | ||
- | example '#24T'. | ||
- | |||
- | By default, UTF-8 in string is not interpreted, to enable | ||
- | UTF-8, use the status-utf8 option. | ||
- | |||
- | status-left-attr attributes | ||
- | Set the attribute of the left part of the status line. | ||
- | |||
- | status-left-fg colour | ||
- | Set the foreground colour of the left part of the status | ||
- | line. | ||
- | |||
- | status-left-bg colour | ||
- | Set the background colour of the left part of the status | ||
- | line. | ||
- | |||
- | status-left-length length | ||
- | Set the maximum length of the left component of the sta- | ||
- | tus bar. The default is 10. | ||
- | |||
- | status-right string | ||
- | Display string to the right of the status bar. By | ||
- | default, the current window title in double quotes, the | ||
- | date and the time are shown. As with status-left, string | ||
- | will be passed to strftime(3), character pairs are | ||
- | replaced, and UTF-8 is dependent on the status-utf8 | ||
- | option. | ||
- | |||
- | status-right-attr attributes | ||
- | Set the attribute of the right part of the status line. | ||
- | |||
- | status-right-fg colour | ||
- | Set the foreground colour of the right part of the status | ||
- | line. | ||
- | |||
- | status-right-bg colour | ||
- | Set the background colour of the right part of the status | ||
- | line. | ||
- | |||
- | status-right-length length | ||
- | Set the maximum length of the right component of the sta- | ||
- | tus bar. The default is 40. | ||
- | |||
- | status-utf8 [on | off] | ||
- | Instruct tmux to treat top-bit-set characters in the | ||
- | status-left and status-right strings as UTF-8; notably, | ||
- | this is important for wide characters. This option | ||
- | defaults to off. | ||
- | |||
- | terminal-overrides string | ||
- | Contains a list of entries which override terminal | ||
- | descriptions read using terminfo(5). string is a comma- | ||
- | separated list of items each a colon-separated string | ||
- | made up of a terminal type pattern (matched using | ||
- | fnmatch(3)) and a set of name=value entries. | ||
- | |||
- | For example, to set the 'clear' terminfo(5) entry to | ||
- | '\e[H\e[2J' for all terminal types and the 'dch1' entry | ||
- | to '\e[P' for the 'rxvt' terminal type, the option could | ||
- | be set to the string: | ||
- | |||
- | "*:clear=\e[H\e[2J,rxvt:dch1=\e[P" | ||
- | |||
- | The terminal entry value is passed through strunvis(3) | ||
- | before interpretation. The default value forcibly cor- | ||
- | rects the 'colors' entry for terminals which support 88 | ||
- | or 256 colours: | ||
- | |||
- | "*88col*:colors=88,*256col*:colors=256" | ||
- | |||
- | update-environment variables | ||
- | Set a space-separated string containing a list of envi- | ||
- | ronment variables to be copied into the session environ- | ||
- | ment when a new session is created or an existing session | ||
- | is attached. Any variables that do not exist in the | ||
- | source environment are set to be removed from the session | ||
- | environment (as if -r was given to the set-environment | ||
- | command). The default is "DISPLAY WINDOWID SSH_ASKPASS | ||
- | SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION". | ||
- | |||
- | visual-activity [on | off] | ||
- | If on, display a status line message when activity occurs | ||
- | in a window for which the monitor-activity window option | ||
- | is enabled. | ||
- | |||
- | visual-bell [on | off] | ||
- | If this option is on, a message is shown on a bell | ||
- | instead of it being passed through to the terminal (which | ||
- | normally makes a sound). Also see the bell-action | ||
- | option. | ||
- | |||
- | visual-content [on | off] | ||
- | Like visual-activity, display a message when content is | ||
- | present in a window for which the monitor-content window | ||
- | option is enabled. | ||
- | |||
- | set-window-option [-agu] [-t target-window] option value | ||
- | (alias: setw) | ||
- | Set a window option. The -a, -g and -u flags work similarly to | ||
- | the set-option command. | ||
- | |||
- | Supported window options are: | ||
- | |||
- | aggressive-resize [on | off] | ||
- | Aggressively resize the chosen window. This means that | ||
- | 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] | ||
- | Control automatic window renaming. When this setting is | ||
- | enabled, tmux will attempt - on supported platforms - to | ||
- | rename the window to reflect the command currently run- | ||
- | ning 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 colour | ||
- | Set clock colour. | ||
- | |||
- | clock-mode-style [12 | 24] | ||
- | Set clock hour format. | ||
- | |||
- | force-height height | ||
- | force-width width | ||
- | Prevent tmux from resizing a window to greater than width | ||
- | or height. A value of zero restores the default unlim- | ||
- | ited setting. | ||
- | |||
- | main-pane-width width | ||
- | main-pane-height height | ||
- | Set the width or height of the main (left or top) pane in | ||
- | the main-horizontal or main-vertical layouts. | ||
- | |||
- | mode-attr attributes | ||
- | Set window modes attributes. | ||
- | |||
- | mode-bg colour | ||
- | Set window modes background colour. | ||
- | |||
- | mode-fg colour | ||
- | Set window modes foreground colour. | ||
- | |||
- | mode-keys [vi | emacs] | ||
- | Use vi or emacs-style key bindings in copy and choice | ||
- | modes. Key bindings default to emacs. | ||
- | |||
- | mode-mouse [on | off] | ||
- | Mouse state in modes. If on, the mouse may be used to | ||
- | copy a selection by dragging in copy mode, or to select | ||
- | an option in choice mode. | ||
- | |||
- | monitor-activity [on | off] | ||
- | Monitor for activity in the window. Windows with activ- | ||
- | ity are highlighted in the status line. | ||
- | |||
- | monitor-content match-string | ||
- | Monitor content in the window. When fnmatch(3) pattern | ||
- | match-string appears in the window, it is highlighted in | ||
- | the status line. | ||
- | |||
- | remain-on-exit [on | off] | ||
- | A window with this flag set is not destroyed when the | ||
- | program running in it exits. The window may be reacti- | ||
- | vated with the respawn-window command. | ||
- | |||
- | synchronize-panes [on | off] | ||
- | Duplicate input to any pane to all other panes in the | ||
- | same window (only for panes that are not in any special | ||
- | mode). | ||
- | |||
- | alternate-screen [on | off] | ||
- | This option configures whether programs running inside | ||
- | tmux may use the terminal alternate screen feature, which | ||
- | allows the smcup and rmcup terminfo(5) capabilities to be | ||
- | issued to preserve the existing window content on start | ||
- | and restore it on exit. | ||
- | |||
- | utf8 [on | off] | ||
- | Instructs tmux to expect UTF-8 sequences to appear in | ||
- | this window. | ||
- | |||
- | window-status-attr attributes | ||
- | Set status line attributes for a single window. | ||
- | |||
- | window-status-bg colour | ||
- | Set status line background colour for a single window. | ||
- | |||
- | window-status-fg colour | ||
- | Set status line foreground colour for a single window. | ||
- | |||
- | window-status-format string | ||
- | Set the format in which the window is displayed in the | ||
- | status line window list. See the status-left option for | ||
- | details of special character sequences available. The | ||
- | default is '#I:#W#F'. | ||
- | |||
- | window-status-alert-attr attributes | ||
- | Set status line attributes for windows which have an | ||
- | alert (bell, activity or content). | ||
- | |||
- | window-status-alert-bg colour | ||
- | Set status line background colour for windows with an | ||
- | alert. | ||
- | |||
- | window-status-alert-fg colour | ||
- | Set status line foreground colour for windows with an | ||
- | alert. | ||
- | |||
- | window-status-current-attr attributes | ||
- | Set status line attributes for the currently active win- | ||
- | dow. | ||
- | |||
- | window-status-current-bg colour | ||
- | Set status line background colour for the currently | ||
- | active window. | ||
- | |||
- | window-status-current-fg colour | ||
- | Set status line foreground colour for the currently | ||
- | active window. | ||
- | |||
- | window-status-current-format string | ||
- | Like window-status-format, but is the format used when | ||
- | the window is the current window. | ||
- | |||
- | word-separators string | ||
- | Sets the window's conception of what characters are con- | ||
- | sidered word separators, for the purposes of the next and | ||
- | previous word commands in copy mode. The default is | ||
- | ' -_@'. | ||
- | |||
- | xterm-keys [on | off] | ||
- | If this option is set, tmux will generate xterm(1) -style | ||
- | function key sequences; these have a number included to | ||
- | indicate modifiers such as Shift, Alt or Ctrl. The | ||
- | default is off. | ||
- | |||
- | show-options [-gsw] [-t target-session | target-window] | ||
- | (alias: show) | ||
- | Show the window options with -w (equivalent to | ||
- | show-window-options), the server options with -s, otherwise the | ||
- | session options for target session. Global session or window | ||
- | options are listed if -g is used. | ||
- | |||
- | show-window-options [-g] [-t target-window] | ||
- | (alias: showw) | ||
- | List the window options for target-window, or the global window | ||
- | options if -g is used. | ||
- | |||
- | ENVIRONMENT | ||
- | When the server is started, tmux copies the environment into the global | ||
- | environment; in addition, each session has a session environment. When a | ||
- | window is created, the session and global environments are merged with | ||
- | the session environment overriding any variable present in both. This is | ||
- | the initial environment passed to the new process. | ||
- | |||
- | The update-environment session option may be used to update the session | ||
- | environment from the client when a new session is created or an old reat- | ||
- | tached. tmux also initialises the TMUX variable with some internal | ||
- | information to allow commands to be executed from inside, and the TERM | ||
- | variable with the correct terminal setting of 'screen'. | ||
- | |||
- | Commands to alter and view the environment are: | ||
- | |||
- | set-environment [-gru] [-t target-session] name [value] | ||
- | (alias: setenv) | ||
- | Set or unset an environment variable. If -g is used, the change | ||
- | is made in the global environment; otherwise, it is applied to | ||
- | the session environment for target-session. The -u flag unsets a | ||
- | variable. -r indicates the variable is to be removed from the | ||
- | environment before starting a new process. | ||
- | |||
- | show-environment [-g] [-t target-session] | ||
- | (alias: showenv) | ||
- | Display the environment for target-session or the global environ- | ||
- | ment with -g. Variables removed from the environment are pre- | ||
- | fixed with '-'. | ||
- | |||
- | STATUS LINE | ||
- | tmux includes an optional status line which is displayed in the bottom | ||
- | line of each terminal. By default, the status line is enabled (it may be | ||
- | disabled with the status session option) and contains, from left-to- | ||
- | right: the name of the current session in square brackets; the window | ||
- | list; the current window title in double quotes; and the time and date. | ||
- | |||
- | The status line is made of three parts: configurable left and right sec- | ||
- | tions (which may contain dynamic content such as the time or output from | ||
- | a shell command, see the status-left, status-left-length, status-right, | ||
- | and status-right-length options below), and a central window list. By | ||
- | default, the window list shows the index, name and (if any) flag of the | ||
- | windows present in the current session in ascending numerical order. It | ||
- | may be customised with the window-status-format and | ||
- | window-status-current-format options. The flag is one of the following | ||
- | symbols appended to the window name: | ||
- | |||
- | Symbol Meaning | ||
- | * Denotes the current window. | ||
- | - Marks the last window (previously selected). | ||
- | # Window is monitored and activity has been detected. | ||
- | ! A bell has occurred in the window. | ||
- | + Window is monitored for content and it has appeared. | ||
- | |||
- | The # symbol relates to the monitor-activity and + to the monitor-content | ||
- | window options. The window name is printed in inverted colours if an | ||
- | alert (bell, activity or content) is present. | ||
- | |||
- | The colour and attributes of the status line may be configured, the | ||
- | entire status line using the status-attr, status-fg and status-bg session | ||
- | options and individual windows using the window-status-attr, | ||
- | window-status-fg and window-status-bg window options. | ||
- | |||
- | The status line is automatically refreshed at interval if it has changed, | ||
- | the interval may be controlled with the status-interval session option. | ||
- | |||
- | Commands related to the status line are as follows: | ||
- | |||
- | command-prompt [-p prompts] [-t target-client] [template] | ||
- | Open the command prompt in a client. This may be used from | ||
- | inside tmux to execute commands interactively. If template is | ||
- | specified, it is used as the command. If -p is given, prompts is | ||
- | a comma-separated list of prompts which are displayed in order; | ||
- | otherwise a single prompt is displayed, constructed from template | ||
- | if it is present, or ':' if not. Before the command is executed, | ||
- | the first occurrence of the string '%%' and all occurrences of | ||
- | '%1' are replaced by the response to the first prompt, the second | ||
- | '%%' and all '%2' are replaced with the response to the second | ||
- | prompt, and so on for further prompts. Up to nine prompt | ||
- | responses may be replaced ('%1' to '%9'). | ||
- | |||
- | confirm-before [-t target-client] command | ||
- | (alias: confirm) | ||
- | Ask for confirmation before executing command. This command | ||
- | works only from inside tmux. | ||
- | |||
- | display-message [-p] [-t target-client] [message] | ||
- | (alias: display) | ||
- | Display a message. If -p is given, the output is printed to std- | ||
- | out, otherwise it is displayed in the target-client status line. | ||
- | The format of message is as for status-left, with the exception | ||
- | that #() are not handled. | ||
- | |||
- | BUFFERS | ||
- | 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. | ||
- | |||
- | A configurable history buffer is also maintained 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 above). | ||
- | |||
- | The buffer commands are as follows: | ||
- | |||
- | choose-buffer [-t target-window] [template] | ||
- | Put a window into buffer choice mode, where a buffer may be cho- | ||
- | sen interactively from a list. After a buffer is selected, '%%' | ||
- | is replaced by the buffer index in template and the result exe- | ||
- | cuted as a command. If template is not given, "paste-buffer -b | ||
- | '%%'" is used. This command works only from inside tmux. | ||
- | |||
- | clear-history [-t target-pane] | ||
- | (alias: clearhist) | ||
- | Remove and free the history for the specified pane. | ||
- | |||
- | copy-buffer [-a src-index] [-b dst-index] [-s src-session] [-t | ||
- | dst-session] | ||
- | (alias: copyb) | ||
- | Copy a session paste buffer to another session. If no sessions | ||
- | are specified, the current one is used instead. | ||
- | |||
- | delete-buffer [-b buffer-index] [-t target-session] | ||
- | (alias: deleteb) | ||
- | Delete the buffer at buffer-index, or the top buffer if not spec- | ||
- | ified. | ||
- | |||
- | list-buffers [-t target-session] | ||
- | (alias: lsb) | ||
- | List the buffers in the given session. | ||
- | |||
- | load-buffer [-b buffer-index] [-t target-session] path | ||
- | (alias: loadb) | ||
- | Load the contents of the specified paste buffer from path. | ||
- | |||
- | paste-buffer [-dr] [-b buffer-index] [-s separator] [-t target-pane] | ||
- | (alias: pasteb) | ||
- | Insert the contents of a paste buffer into the specified pane. | ||
- | If not specified, paste into the current one. With -d, also | ||
- | delete the paste buffer from the stack. When output, any line- | ||
- | feed (LF) characters in the paste buffer are replaced with a sep- | ||
- | arator, by default carriage return (CR). A custom separator may | ||
- | be specified using the -s flag. The -r flag means to do no | ||
- | replacement (equivalent to a separator of LF). | ||
- | |||
- | save-buffer [-a] [-b buffer-index] [-t target-session] path | ||
- | (alias: saveb) | ||
- | Save the contents of the specified paste buffer to path. The -a | ||
- | option appends to rather than overwriting the file. | ||
- | |||
- | set-buffer [-b buffer-index] [-t target-session] data | ||
- | (alias: setb) | ||
- | Set the contents of the specified buffer to data. | ||
- | |||
- | show-buffer [-b buffer-index] [-t target-session] | ||
- | (alias: showb) | ||
- | Display the contents of the specified buffer. | ||
- | |||
- | MISCELLANEOUS | ||
- | Miscellaneous commands are as follows: | ||
- | |||
- | clock-mode [-t target-pane] | ||
- | Display a large clock. | ||
- | |||
- | if-shell shell-command command | ||
- | (alias: if) | ||
- | Execute command if shell-command returns success. | ||
- | |||
- | lock-server | ||
- | (alias: lock) | ||
- | Lock each client individually by running the command specified by | ||
- | the lock-command option. | ||
- | |||
- | run-shell shell-command | ||
- | (alias: run) | ||
- | Execute shell-command in the background without creating a win- | ||
- | dow. After it finishes, any output to stdout is displayed in | ||
- | copy mode. If the command doesn't return success, the exit sta- | ||
- | tus is also displayed. | ||
- | |||
- | server-info | ||
- | (alias: info) | ||
- | Show server information and terminal details. | ||
- | |||
- | FILES | ||
- | ~/.tmux.conf Default tmux configuration file. | ||
- | /etc/tmux.conf System-wide configuration file. | ||
- | |||
- | EXAMPLES | ||
- | To create a new tmux session running vi(1): | ||
- | |||
- | $ 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 c' | ||
- | (Ctrl followed by the 'b' 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' (or by an external event such as | ||
- | ssh(1) disconnection) 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. | ||
- | |||
- | Commands to be run when the tmux server is started may be placed in the | ||
- | ~/.tmux.conf configuration file. Common examples include: | ||
- | |||
- | Changing the default prefix key: | ||
- | |||
- | set-option -g prefix C-a | ||
- | unbind-key C-b | ||
- | bind-key C-a send-prefix | ||
- | |||
- | Turning the status line off, or changing its colour: | ||
- | |||
- | set-option -g status off | ||
- | set-option -g status-bg blue | ||
- | |||
- | Setting other options, such as the default command, or locking after 30 | ||
- | minutes of inactivity: | ||
- | |||
- | set-option -g default-command "exec /bin/ksh" | ||
- | set-option -g lock-after-time 1800 | ||
- | |||
- | Creating new key bindings: | ||
- | |||
- | bind-key b set-option status | ||
- | bind-key / command-prompt "split-window 'exec man %%'" | ||
- | bind-key S command-prompt "new-window -n %1 'ssh %1'" | ||
- | </code> |