diff options
Diffstat (limited to '')
-rw-r--r-- | tmux.1 | 858 |
1 files changed, 635 insertions, 223 deletions
@@ -23,7 +23,7 @@ .Sh SYNOPSIS .Nm tmux .Bk -words -.Op Fl 2CDluvV +.Op Fl 2CDlNuVv .Op Fl c Ar shell-command .Op Fl f Ar file .Op Fl L Ar socket-name @@ -140,10 +140,10 @@ By default, loads the system configuration file from .Pa @SYSCONFDIR@/tmux.conf , if present, then looks for a user configuration file at -.Pa ~/.tmux.conf, +.Pa \[ti]/.tmux.conf, .Pa $XDG_CONFIG_HOME/tmux/tmux.conf or -.Pa ~/.config/tmux/tmux.conf . +.Pa \[ti]/.tmux.conf . .Pp The configuration file is a set of .Nm @@ -206,6 +206,12 @@ If is specified, the default socket directory is not used and any .Fl L flag is ignored. +.It Fl T Ar features +Set terminal features for the client. +This is a comma-separated list of features. +See the +.Ic terminal-features +option. .It Fl u Write UTF-8 output to the terminal even if the first environment variable of @@ -217,14 +223,10 @@ that is set does not contain .Qq UTF-8 or .Qq UTF8 . -This is equivalent to -.Fl T Ar UTF-8 . -.It Fl T Ar features -Set terminal features for the client. -This is a comma-separated list of features. -See the -.Ic terminal-features -option. +.It Fl V +Report the +.Nm +version. .It Fl v Request verbose logging. Log messages will be saved into @@ -249,10 +251,6 @@ signal may be sent to the server process to toggle logging between on (as if .Fl v was given) and off. -.It Fl V -Report the -.Nm -version. .It Ar command Op Ar flags This specifies one of a set of commands used to control .Nm , @@ -292,7 +290,7 @@ Rename the current session. Split the current pane into two, left and right. .It & Kill the current window. -.It ' +.It \[aq] Prompt for a window index to select. .It \&( Switch the attached client to the previous session. @@ -364,7 +362,7 @@ Toggle zoom state of the current pane. Swap the current pane with the previous pane. .It } Swap the current pane with the next pane. -.It ~ +.It \[ti] Show previous messages from .Nm , if any. @@ -410,7 +408,7 @@ the command prompt. For example, the same .Ic set-option command run from the shell prompt, from -.Pa ~/.tmux.conf +.Pa \[ti]/.tmux.conf and bound to a key may look like: .Bd -literal -offset indent $ tmux set-option -g status-style bg=cyan @@ -463,7 +461,7 @@ To execute commands, each client has a .Ql command queue . A global command queue not attached to any client is used on startup for configuration files like -.Pa ~/.tmux.conf . +.Pa \[ti]/.tmux.conf . Parsed commands added to the queue are executed in order. Some commands, like .Ic if-shell @@ -471,7 +469,8 @@ and .Ic confirm-before , parse their argument to create a new command which is inserted immediately after themselves. -This means that arguments can be parsed twice or more - once when the parent command (such as +This means that arguments can be parsed twice or more - once when the parent +command (such as .Ic if-shell ) is parsed and again when it parses and executes its command. Commands like @@ -534,7 +533,7 @@ $ tmux neww \\; splitw .Pp Or: .Bd -literal -offset indent -$ tmux neww ';' splitw +$ tmux neww \[aq];\[aq] splitw .Ed .Pp Or from the tmux command prompt: @@ -547,12 +546,12 @@ for example in these .Xr sh 1 commands: .Bd -literal -offset indent -$ tmux neww\e\e; splitw +$ tmux neww\e; splitw .Ed .Pp Or: .Bd -literal -offset indent -$ tmux 'neww;' splitw +$ tmux \[aq]neww;\[aq] splitw .Ed .Pp As in these examples, when running tmux from the shell extra care must be taken @@ -564,7 +563,7 @@ should be escaped according to the shell conventions. For .Xr sh 1 this typically means quoted (such as -.Ql neww ';' splitw ) +.Ql neww \[aq];\[aq] splitw ) or escaped (such as .Ql neww \e\e\e\e; splitw ) . .It @@ -574,14 +573,14 @@ a second time for .Nm ; for example: .Bd -literal -offset indent -$ tmux neww 'foo\e\e;' bar +$ tmux neww \[aq]foo\e\e;\[aq] bar $ tmux neww foo\e\e\e\e; bar .Ed .It Semicolons that are not individual tokens or trailing another token should only be escaped once according to shell conventions; for example: .Bd -literal -offset indent -$ tmux neww 'foo-;-bar' +$ tmux neww \[aq]foo-;-bar\[aq] $ tmux neww foo-\e\e;-bar .Ed .El @@ -594,8 +593,8 @@ line (the \e and the newline are completely removed). This is called line continuation and applies both inside and outside quoted strings and in comments, but not inside braces. .Pp -Command arguments may be specified as strings surrounded by single (') quotes, -double quotes (") or braces ({}). +Command arguments may be specified as strings surrounded by single (\[aq]) +quotes, double quotes (\[dq]) or braces ({}). .\" " This is required when the argument contains any special character. Single and double quoted strings cannot span multiple lines except with line @@ -610,7 +609,7 @@ global environment (see the .Sx GLOBAL AND SESSION ENVIRONMENT section). .It -A leading ~ or ~user is expanded to the home directory of the current or +A leading \[ti] or \[ti]user is expanded to the home directory of the current or specified user. .It \euXXXX or \euXXXXXXXX is replaced by the Unicode codepoint corresponding to @@ -642,10 +641,10 @@ These two examples produce an identical command - note that no escaping is needed when using {}: .Bd -literal -offset indent if-shell true { - display -p 'brace-dollar-foo: }$foo' + display -p \[aq]brace-dollar-foo: }$foo\[aq] } -if-shell true "display -p 'brace-dollar-foo: }\e$foo'" +if-shell true "display -p \[aq]brace-dollar-foo: }\e$foo\[aq]" .Ed .Pp Braces may be enclosed inside braces, for example: @@ -889,14 +888,14 @@ may consist entirely of the token .Ql {mouse} (alternative form .Ql = ) -to specify the session, window or pane where the most recent mouse event occurred -(see the +to specify the session, window or pane where the most recent mouse event +occurred (see the .Sx MOUSE SUPPORT section) or .Ql {marked} (alternative form -.Ql ~ ) +.Ql \[ti] ) to specify the marked pane (see .Ic select-pane .Fl m ) . @@ -936,12 +935,12 @@ arguments are commands. This may be a single argument passed to the shell, for example: .Bd -literal -offset indent -new-window 'vi ~/.tmux.conf' +new-window \[aq]vi \[ti]/.tmux.conf\[aq] .Ed .Pp Will run: .Bd -literal -offset indent -/bin/sh -c 'vi ~/.tmux.conf' +/bin/sh -c \[aq]vi \[ti]/.tmux.conf\[aq] .Ed .Pp Additionally, the @@ -958,7 +957,7 @@ to be given as multiple arguments and executed directly (without This can avoid issues with shell quoting. For example: .Bd -literal -offset indent -$ tmux new-window vi ~/.tmux.conf +$ tmux new-window vi \[ti]/.tmux.conf .Ed .Pp Will run @@ -966,7 +965,7 @@ Will run directly without invoking the shell. .Pp .Ar command -.Op Ar arguments +.Op Ar argument ... refers to a .Nm command, either passed with the command and arguments separately, for example: @@ -993,7 +992,7 @@ set-option -wt:0 monitor-activity on new-window ; split-window -d -bind-key R source-file ~/.tmux.conf \e; \e +bind-key R source-file \[ti]/.tmux.conf \e; \e display-message "source-file done" .Ed .Pp @@ -1004,7 +1003,7 @@ $ tmux kill-window -t :1 $ tmux new-window \e; split-window -d -$ tmux new-session -d 'vi ~/.tmux.conf' \e; split-window -d \e; attach +$ tmux new-session -d \[aq]vi \[ti]/.tmux.conf\[aq] \e; split-window -d \e; attach .Ed .Sh CLIENTS AND SESSIONS The @@ -1169,13 +1168,17 @@ session. .Tg lsc .It Xo Ic list-clients .Op Fl F Ar format +.Op Fl f Ar filter .Op Fl t Ar target-session .Xc .D1 Pq alias: Ic lsc List all clients attached to the server. -For the meaning of the .Fl F -flag, see the +specifies the format of each line and +.Fl f +a filter. +Only clients for which the filter is true are shown. +See the .Sx FORMATS section. If @@ -1278,7 +1281,10 @@ behave like .Ic attach-session if .Ar session-name -already exists; in this case, +already exists; +if +.Fl A +is given, .Fl D behaves like .Fl d @@ -1462,7 +1468,7 @@ requests the clipboard from the client using the .Xr xterm 1 escape sequence. If -Ar target-pane +.Ar target-pane is given, the clipboard is sent (in encoded form), otherwise it is stored in a new paste buffer. .Pp @@ -1543,8 +1549,8 @@ show debugging information about jobs and terminals. .Tg source .It Xo Ic source-file .Op Fl Fnqv -.Ar path -.Ar ... +.Op Fl t Ar target-pane +.Ar path ... .Xc .D1 Pq alias: Ic source Execute commands from one or more files specified by @@ -1576,8 +1582,9 @@ server, if not already running, without creating any sessions. .Pp Note that as by default the .Nm -server will exit with no sessions, this is only useful if a session is created in -.Pa ~/.tmux.conf , +server will exit with no sessions, this is only useful if a session is created +in +.Pa \[ti]/.tmux.conf , .Ic exit-empty is turned off, or another command is run as part of the same command sequence. For example: @@ -1739,88 +1746,267 @@ Key tables may be viewed with the command. .Pp The following commands are supported in copy mode: -.Bl -column "CommandXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" "viXXXXXXXXXX" "emacs" -offset indent -.It Sy "Command" Ta Sy "vi" Ta Sy "emacs" -.It Li "append-selection" Ta "" Ta "" -.It Li "append-selection-and-cancel" Ta "A" Ta "" -.It Li "back-to-indentation" Ta "^" Ta "M-m" -.It Li "begin-selection" Ta "Space" Ta "C-Space" -.It Li "bottom-line" Ta "L" Ta "" -.It Li "cancel" Ta "q" Ta "Escape" -.It Li "clear-selection" Ta "Escape" Ta "C-g" -.It Li "copy-end-of-line [<prefix>]" Ta "" Ta "" -.It Li "copy-end-of-line-and-cancel [<prefix>]" Ta "" Ta "" -.It Li "copy-pipe-end-of-line [<command>] [<prefix>]" Ta "" Ta "" -.It Li "copy-pipe-end-of-line-and-cancel [<command>] [<prefix>]" Ta "D" Ta "C-k" -.It Li "copy-line [<prefix>]" Ta "" Ta "" -.It Li "copy-line-and-cancel [<prefix>]" Ta "" Ta "" -.It Li "copy-pipe-line [<command>] [<prefix>]" Ta "" Ta "" -.It Li "copy-pipe-line-and-cancel [<command>] [<prefix>]" Ta "" Ta "" -.It Li "copy-pipe [<command>] [<prefix>]" Ta "" Ta "" -.It Li "copy-pipe-no-clear [<command>] [<prefix>]" Ta "" Ta "" -.It Li "copy-pipe-and-cancel [<command>] [<prefix>]" Ta "" Ta "" -.It Li "copy-selection [<prefix>]" Ta "" Ta "" -.It Li "copy-selection-no-clear [<prefix>]" Ta "" Ta "" -.It Li "copy-selection-and-cancel [<prefix>]" Ta "Enter" Ta "M-w" -.It Li "cursor-down" Ta "j" Ta "Down" -.It Li "cursor-down-and-cancel" Ta "" Ta "" -.It Li "cursor-left" Ta "h" Ta "Left" -.It Li "cursor-right" Ta "l" Ta "Right" -.It Li "cursor-up" Ta "k" Ta "Up" -.It Li "end-of-line" Ta "$" Ta "C-e" -.It Li "goto-line <line>" Ta ":" Ta "g" -.It Li "halfpage-down" Ta "C-d" Ta "M-Down" -.It Li "halfpage-down-and-cancel" Ta "" Ta "" -.It Li "halfpage-up" Ta "C-u" Ta "M-Up" -.It Li "history-bottom" Ta "G" Ta "M->" -.It Li "history-top" Ta "g" Ta "M-<" -.It Li "jump-again" Ta ";" Ta ";" -.It Li "jump-backward <to>" Ta "F" Ta "F" -.It Li "jump-forward <to>" Ta "f" Ta "f" -.It Li "jump-reverse" Ta "," Ta "," -.It Li "jump-to-backward <to>" Ta "T" Ta "" -.It Li "jump-to-forward <to>" Ta "t" Ta "" -.It Li "jump-to-mark" Ta "M-x" Ta "M-x" -.It Li "middle-line" Ta "M" Ta "M-r" -.It Li "next-matching-bracket" Ta "%" Ta "M-C-f" -.It Li "next-paragraph" Ta "}" Ta "M-}" -.It Li "next-space" Ta "W" Ta "" -.It Li "next-space-end" Ta "E" Ta "" -.It Li "next-word" Ta "w" Ta "" -.It Li "next-word-end" Ta "e" Ta "M-f" -.It Li "other-end" Ta "o" Ta "" -.It Li "page-down" Ta "C-f" Ta "PageDown" -.It Li "page-down-and-cancel" Ta "" Ta "" -.It Li "page-up" Ta "C-b" Ta "PageUp" -.It Li "pipe [<command>] [<prefix>]" Ta "" Ta "" -.It Li "pipe-no-clear [<command>] [<prefix>]" Ta "" Ta "" -.It Li "pipe-and-cancel [<command>] [<prefix>]" Ta "" Ta "" -.It Li "previous-matching-bracket" Ta "" Ta "M-C-b" -.It Li "previous-paragraph" Ta "{" Ta "M-{" -.It Li "previous-space" Ta "B" Ta "" -.It Li "previous-word" Ta "b" Ta "M-b" -.It Li "rectangle-on" Ta "" Ta "" -.It Li "rectangle-off" Ta "" Ta "" -.It Li "rectangle-toggle" Ta "v" Ta "R" -.It Li "refresh-from-pane" Ta "r" Ta "r" -.It Li "scroll-down" Ta "C-e" Ta "C-Down" -.It Li "scroll-down-and-cancel" Ta "" Ta "" -.It Li "scroll-up" Ta "C-y" Ta "C-Up" -.It Li "search-again" Ta "n" Ta "n" -.It Li "search-backward <for>" Ta "?" Ta "" -.It Li "search-backward-incremental <for>" Ta "" Ta "C-r" -.It Li "search-backward-text <for>" Ta "" Ta "" -.It Li "search-forward <for>" Ta "/" Ta "" -.It Li "search-forward-incremental <for>" Ta "" Ta "C-s" -.It Li "search-forward-text <for>" Ta "" Ta "" -.It Li "search-reverse" Ta "N" Ta "N" -.It Li "select-line" Ta "V" Ta "" -.It Li "select-word" Ta "" Ta "" -.It Li "set-mark" Ta "X" Ta "X" -.It Li "start-of-line" Ta "0" Ta "C-a" -.It Li "stop-selection" Ta "" Ta "" -.It Li "toggle-position" Ta "P" Ta "P" -.It Li "top-line" Ta "H" Ta "M-R" +.Bl -tag -width Ds +.It Xo +.Ic append-selection +.Xc +Append the selection to the top paste buffer. +.It Xo +.Ic append-selection-and-cancel +(vi: A) +.Xc +Append the selection to the top paste buffer and exit copy mode. +.It Xo +.Ic back-to-indentation +(vi: ^) +(emacs: M-m) +.Xc +Move the cursor back to the indentation. +.It Xo +.Ic begin-selection +(vi: Space) +(emacs: C-Space) +.Xc +Begin selection. +.It Xo +.Ic bottom-line +(vi: L) +.Xc +Move to the bottom line. +.It Xo +.Ic cancel +(vi: q) +(emacs: Escape) +.Xc +Exit copy mode. +.It Xo +.Ic clear-selection +(vi: Escape) +(emacs: C-g) +.Xc +Clear the current selection. +.It Xo +.Ic copy-end-of-line +.Op Ar prefix +.Xc +Copy from the cursor position to the end of the line. +.Ar prefix +is used to name the new paste buffer. +.It Xo +.Ic copy-end-of-line-and-cancel +.Op Ar prefix +.Xc +Copy from the cursor position and exit copy mode. +.It Xo +.Ic copy-line +.Op Ar prefix +.Xc +Copy the entire line. +.It Xo +.Ic copy-line-and-cancel +.Op Ar prefix +.Xc +Copy the entire line and exit copy mode. +.It Xo +.Ic copy-selection +.Op Ar prefix +.Xc +Copies the current selection. +.It Xo +.Ic copy-selection-and-cancel +.Op Ar prefix +(vi: Enter) +(emacs: M-w) +.Xc +Copy the current selection and exit copy mode. +.It Xo +.Ic cursor-down +(vi: j) +(emacs: Down) +.Xc +Move the cursor down. +.It Xo +.Ic cursor-left +(vi: h) +(emacs: Left) +.Xc +Move the cursor left. +.It Xo +.Ic cursor-right +(vi: l) +(emacs: Right) +.Xc +Move the cursor right. +.It Xo +.Ic cursor-up +(vi: k) +(emacs: Up) +.Xc +Move the cursor up. +.It Xo +.Ic end-of-line +(vi: $) +(emacs: C-e) +.Xc +Move the cursor to the end of the line. +.It Xo +.Ic goto-line +.Ar line +(vi: :) +(emacs: g) +.Xc +Move the cursor to a specific line. +.It Xo +.Ic history-bottom +(vi: G) +(emacs: M->) +.Xc +Scroll to the bottom of the history. +.It Xo +.Ic history-top +(vi: g) +(emacs: M-<) +.Xc +Scroll to the top of the history. +.It Xo +.Ic jump-again +(vi: ;) +(emacs: ;) +.Xc +Repeat the last jump. +.It Xo +.Ic jump-backward +.Ar to +(vi: F) +(emacs: F) +.Xc +Jump backwards to the specified text. +.It Xo +.Ic jump-forward +.Ar to +(vi: f) +(emacs: f) +.Xc +Jump forward to the specified text. +.It Xo +.Ic jump-to-mark +(vi: M-x) +(emacs: M-x) +.Xc +Jump to the last mark. +.It Xo +.Ic middle-line +(vi: M) +(emacs: M-r) +.Xc +Move to the middle line. +.It Xo +.Ic next-matching-bracket +(vi: %) +(emacs: M-C-f) +.Xc +Move to the next matching bracket. +.It Xo +.Ic next-paragraph +(vi: }) +(emacs: M-}) +.Xc +Move to the next paragraph. +.It Xo +.Ic next-prompt +.Op Fl o +.Xc +Move to the next prompt. +.It Xo +.Ic next-word +(vi: w) +.Xc +Move to the next word. +.It Xo +.Ic page-down +(vi: C-f) +(emacs: PageDown) +.Xc +Scroll down by one page. +.It Xo +.Ic page-up +(vi: C-b) +(emacs: PageUp) +.Xc +Scroll up by one page. +.It Xo +.Ic previous-matching-bracket +(emacs: M-C-b) +.Xc +Move to the previous matching bracket. +.It Xo +.Ic previous-paragraph +(vi: {) +(emacs: M-{) +.Xc +Move to the previous paragraph. +.It Xo +.Ic previous-prompt +.Op Fl o +.Xc +Move to the previous prompt. +.It Xo +.Ic previous-word +(vi: b) +(emacs: M-b) +.Xc +Move to the previous word. +.It Xo +.Ic rectangle-toggle +(vi: v) +(emacs: R) +.Xc +Toggle rectangle selection mode. +.It Xo +.Ic refresh-from-pane +(vi: r) +(emacs: r) +.Xc +Refresh the content from the pane. +.It Xo +.Ic search-again +(vi: n) +(emacs: n) +.Xc +Repeat the last search. +.It Xo +.Ic search-backward +.Ar text +(vi: ?) +.Xc +Search backwards for the specified text. +.It Xo +.Ic search-forward +.Ar text +(vi: /) +.Xc +Search forward for the specified text. +.It Xo +.Ic select-line +(vi: V) +.Xc +Select the current line. +.It Xo +.Ic select-word +.Xc +Select the current word. +.It Xo +.Ic start-of-line +(vi: 0) +(emacs: C-a) +.Xc +Move the cursor to the start of the line. +.It Xo +.Ic top-line +(vi: H) +(emacs: M-R) +.Xc +Move to the top line. .El .Pp The search commands come in several varieties: @@ -1843,6 +2029,19 @@ repeats the last search and does the same but reverses the direction (forward becomes backward and backward becomes forward). .Pp +The +.Ql next-prompt +and +.Ql previous-prompt +move between shell prompts, but require the shell to emit an escape sequence +(\e033]133;A\e033\e\e) to tell +.Nm +where the prompts are located; if the shell does not do this, these commands +will do nothing. +The +.Fl o +flag jumps to the beginning of the command output instead of the shell prompt. +.Pp Copy commands may take an optional buffer prefix argument which is used to generate the buffer name (the default is .Ql buffer @@ -1928,7 +2127,8 @@ bind PageUp copy-mode -eu .Ed .El .Pp -A number of preset arrangements of panes are available, these are called layouts. +A number of preset arrangements of panes are available, these are called +layouts. These may be selected with the .Ic select-layout command or cycled with @@ -1974,7 +2174,7 @@ 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 select-layout \[aq]bb62,159x48,0,0{79x48,0,0,79x48,80,0}\[aq] .Ed .Pp .Nm @@ -2015,7 +2215,7 @@ but a different format may be specified with .Fl F . .Tg capturep .It Xo Ic capture-pane -.Op Fl aepPqCJN +.Op Fl aAepPqCJN .Op Fl b Ar buffer-name .Op Fl E Ar end-line .Op Fl S Ar start-line @@ -2040,10 +2240,15 @@ is given, the output includes escape sequences for text and background attributes. .Fl C also escapes non-printable characters as octal \exxx. +.Fl T +ignores trailing positions that do not contain a character. .Fl N preserves trailing spaces at each line's end and .Fl J -preserves trailing spaces and joins any wrapped lines. +preserves trailing spaces and joins any wrapped lines; +.Fl J +implies +.Fl T . .Fl P captures only any output that the pane has received that is the beginning of an as-yet incomplete escape sequence. @@ -2109,15 +2314,17 @@ is replaced by the client name in and the result executed as a command. If .Ar template -is not given, "detach-client -t '%%'" is used. +is not given, "detach-client -t \[aq]%%\[aq]" is used. .Pp .Fl O specifies the initial sort field: one of .Ql name , .Ql size , -.Ql creation , +.Ql creation +(time), or -.Ql activity . +.Ql activity +(time). .Fl r reverses the sort order. .Fl f @@ -2192,14 +2399,15 @@ are replaced by the target in and the result executed as a command. If .Ar template -is not given, "switch-client -t '%%'" is used. +is not given, "switch-client -t \[aq]%%\[aq]" is used. .Pp .Fl O specifies the initial sort field: one of .Ql index , .Ql name , or -.Ql time . +.Ql time +(activity). .Fl r reverses the sort order. .Fl f @@ -2303,7 +2511,7 @@ to be executed as a command with substituted by the pane ID. The default .Ar template -is "select-pane -t '%%'". +is "select-pane -t \[aq]%%\[aq]". With .Fl b , other commands are not blocked from running until the indicator is closed. @@ -2665,7 +2873,7 @@ The option only opens a new pipe if no previous pipe exists, allowing a pipe to be toggled with a single key, for example: .Bd -literal -offset indent -bind-key C-p pipe-pane -o 'cat >>~/output.#I-#P' +bind-key C-p pipe-pane -o \[aq]cat >>\[ti]/output.#I-#P\[aq] .Ed .Tg prevl .It Xo Ic previous-layout @@ -2969,7 +3177,7 @@ zooms if the window is not zoomed, or keeps it zoomed if already zoomed. .Pp An empty .Ar shell-command -('') will create a pane with no command running in it. +(\[aq]\[aq]) will create a pane with no command running in it. Output can be sent to such a pane with the .Ic display-message command. @@ -3096,11 +3304,11 @@ and Note that to bind the .Ql \&" or -.Ql ' +.Ql \[aq] keys, quotation marks are necessary, for example: .Bd -literal -offset indent -bind-key '"' split-window -bind-key "'" new-window +bind-key \[aq]"\[aq] split-window +bind-key "\[aq]" new-window .Ed .Pp A command bound to the @@ -3114,7 +3322,7 @@ Commands related to key bindings are as follows: .Op Fl nr .Op Fl N Ar note .Op Fl T Ar key-table -.Ar key command Op Ar arguments +.Ar key command Op Ar argument ... .Xc .D1 Pq alias: Ic bind Bind key @@ -3206,13 +3414,14 @@ lists only the first matching key. lists the command for keys that do not have a note rather than skipping them. .Tg send .It Xo Ic send-keys -.Op Fl FHlMRX +.Op Fl FHKlMRX +.Op Fl c Ar target-client .Op Fl N Ar repeat-count .Op Fl t Ar target-pane -.Ar key Ar ... +.Ar key ... .Xc .D1 Pq alias: Ic send -Send a key or keys to a window. +Send a key or keys to a window or client. Each argument .Ar key is the name of the key (such as @@ -3221,6 +3430,12 @@ or .Ql NPage ) to send; if the string is not recognised as a key, it is sent as a series of characters. +If +.Fl K +is given, keys are sent to +.Ar target-client , +so they are looked up in the client's key table, rather than to +.Ar target-pane . All arguments are sent sequentially from first to last. If no keys are given and the command is bound to a key, then that key is used. .Pp @@ -3489,7 +3704,7 @@ it is replaced with .Ar value . For example, after: .Pp -.Dl set -s command-alias[100] zoom='resize-pane -Z' +.Dl set -s command-alias[100] zoom=\[aq]resize-pane -Z\[aq] .Pp Using: .Pp @@ -3659,6 +3874,14 @@ Allows setting the cursor style. Supports extended keys. .It focus Supports focus reporting. +.It hyperlinks +Supports OSC 8 hyperlinks. +.It ignorefkeys +Ignore function keys from +.Xr terminfo 5 +and use the +.Nm +internal set only. .It margins Supports DECSLRM margins. .It mouse @@ -3673,6 +3896,8 @@ Supports the overline SGR attribute. Supports the DECFRA rectangle fill escape sequence. .It RGB Supports RGB colour with the SGR escape sequences. +.It sixel +Supports SIXEL graphics. .It strikethrough Supports the strikethrough SGR escape sequence. .It sync @@ -3717,7 +3942,7 @@ and so on. .Pp For example: .Bd -literal -offset indent -set -s user-keys[0] "\ee[5;30012~" +set -s user-keys[0] "\ee[5;30012\[ti]" bind User0 resize-pane -L 3 .Ed .El @@ -3801,21 +4026,40 @@ The value is the width and height separated by an character. The default is 80x24. .It Xo Ic destroy-unattached -.Op Ic on | off +.Op Ic off | on | keep-last | keep-group .Xc -If enabled and the session is no longer attached to any clients, it is -destroyed. +If +.Ic on , +destroy the session after the last client has detached. +If +.Ic off +(the default), leave the session orphaned. +If +.Ic keep-last , +destroy the session only if it is in a group and has other sessions in that group. +If +.Ic keep-group , +destroy the session unless it is in a group and is the only session in that group. .It Xo Ic detach-on-destroy -.Op Ic off | on | no-detached +.Op Ic off | on | no-detached | previous | next .Xc -If on (the default), the client is detached when the session it is attached to +If +.Ic on +(the default), the client is detached when the session it is attached to is destroyed. -If off, the client is switched to the most recently active of the remaining +If +.Ic off , +the client is switched to the most recently active of the remaining sessions. If .Ic no-detached , the client is detached only if there are no detached sessions; if detached sessions exist, the client is switched to the most recently active. +If +.Ic previous +or +.Ic next , +the client is switched to the previous or next session in alphabetical order. .It Ic display-panes-active-colour Ar colour Set the colour used by the .Ic display-panes @@ -3856,6 +4100,33 @@ The default is to run .Xr lock 1 with .Fl np . +.It Ic menu-style Ar style +Set the menu style. +See the +.Sx STYLES +section on how to specify +.Ar style . +Attributes are ignored. +.It Ic menu-selected-style Ar style +Set the selected menu item style. +See the +.Sx STYLES +section on how to specify +.Ar style . +Attributes are ignored. +.It Ic menu-border-style Ar style +Set the menu border style. +See the +.Sx STYLES +section on how to specify +.Ar style . +Attributes are ignored. +.It Ic menu-border-lines Ar type +Set the type of characters used for drawing menu borders. +See +.Ic popup-border-lines +for possible values for +.Ar border-lines . .It Ic message-command-style Ar style Set status line message command style. This is used for the command prompt with @@ -3866,6 +4137,10 @@ For how to specify see the .Sx STYLES section. +.It Xo Ic message-line +.Op Ic 0 | 1 | 2 | 3 | 4 +.Xc +Set line on which status line messages and the command prompt are shown. .It Ic message-style Ar style Set status line message style. This is used for messages and for the command prompt. @@ -4319,20 +4594,18 @@ Attributes are ignored. .Pp .It Ic popup-style Ar style Set the popup style. -For how to specify -.Ar style , -see the +See the .Sx STYLES -section. +section on how to specify +.Ar style . Attributes are ignored. .Pp .It Ic popup-border-style Ar style Set the popup border style. -For how to specify -.Ar style , -see the +See the .Sx STYLES -section. +section on how to specify +.Ar style . Attributes are ignored. .Pp .It Ic popup-border-lines Ar type @@ -4455,11 +4728,17 @@ Available pane options are: .Pp .Bl -tag -width Ds -compact .It Xo Ic allow-passthrough -.Op Ic on | off +.Op Ic on | off | all .Xc Allow programs in the pane to bypass .Nm using a terminal escape sequence (\eePtmux;...\ee\e\e). +If set to +.Ic on , +passthrough sequences will be allowed only if the pane is visible. +If set to +.Ic all , +they will be allowed even if the pane is invisible. .Pp .It Xo Ic allow-rename .Op Ic on | off @@ -4559,7 +4838,8 @@ hook and there are a number of hooks not associated with commands. .Pp Hooks are stored as array options, members of the array are executed in order when the hook is triggered. -Like options different hooks may be global or belong to a session, window or pane. +Like options different hooks may be global or belong to a session, window or +pane. Hooks may be configured with the .Ic set-hook or @@ -4571,8 +4851,8 @@ or .Fl H . The following two commands are equivalent: .Bd -literal -offset indent. -set-hook -g pane-mode-changed[42] 'set -g status-left-style bg=red' -set-option -g pane-mode-changed[42] 'set -g status-left-style bg=red' +set-hook -g pane-mode-changed[42] \[aq]set -g status-left-style bg=red\[aq] +set-option -g pane-mode-changed[42] \[aq]set -g status-left-style bg=red\[aq] .Ed .Pp Setting a hook without specifying an array index clears the hook and sets the @@ -4742,7 +5022,8 @@ or .Ar target-pane in commands bound to mouse key bindings. It resolves to the window or pane over which the mouse event took place -(for example, the window in the status line over which button 1 was released for a +(for example, the window in the status line over which button 1 was released +for a .Ql MouseUp1Status binding, or the pane over which the wheel was scrolled for a .Ql WheelDownPane @@ -4882,13 +5163,16 @@ ignores case. For example: .Ql #{C/r:^Start} .Pp -Numeric operators may be performed by prefixing two comma-separated alternatives with an +Numeric operators may be performed by prefixing two comma-separated alternatives +with an .Ql e and an operator. An optional .Ql f -flag may be given after the operator to use floating point numbers, otherwise integers are used. -This may be followed by a number giving the number of decimal places to use for the result. +flag may be given after the operator to use floating point numbers, otherwise +integers are used. +This may be followed by a number giving the number of decimal places to use for +the result. The available operators are: addition .Ql + , @@ -5018,10 +5302,11 @@ but also expands .Xr strftime 3 specifiers. .Ql S:\& , -.Ql W:\& -or +.Ql W:\& , .Ql P:\& -will loop over each session, window or pane and insert the format once +or +.Ql L:\& +will loop over each session, window, pane or client and insert the format once for each. For windows and panes, two comma-separated formats may be given: the second is used for the current window or active pane. @@ -5048,7 +5333,8 @@ will substitute with .Ql bar throughout. -The first argument may be an extended regular expression and a final argument may be +The first argument may be an extended regular expression and a final argument +may be .Ql i to ignore case, for example .Ql s/a(.)/\e1x/i:\& @@ -5056,6 +5342,15 @@ would change .Ql abABab into .Ql bxBxbx . +A different delimiter character may also be used, to avoid collisions with +literal slashes in the pattern. +For example, +.Ql s|foo/|bar/|:\& +will substitute +.Ql foo/ +with +.Ql bar/ +throughout. .Pp In addition, the last line of a shell command's output may be inserted using .Ql #() . @@ -5066,10 +5361,10 @@ When constructing formats, .Nm does not wait for .Ql #() -commands to finish; instead, the previous result from running the same command is used, -or a placeholder if the command has not been run before. -If the command hasn't exited, the most recent line of output will be used, but the status -line will not be updated more than once a second. +commands to finish; instead, the previous result from running the same command +is used, or a placeholder if the command has not been run before. +If the command hasn't exited, the most recent line of output will be used, but +the status line will not be updated more than once a second. Commands are executed using .Pa /bin/sh and with the @@ -5155,9 +5450,12 @@ The following variables are available, where appropriate: .It Li "mouse_all_flag" Ta "" Ta "Pane mouse all flag" .It Li "mouse_any_flag" Ta "" Ta "Pane mouse any flag" .It Li "mouse_button_flag" Ta "" Ta "Pane mouse button flag" +.It Li "mouse_hyperlink" Ta "" Ta "Hyperlink under mouse, if any" .It Li "mouse_line" Ta "" Ta "Line under mouse, if any" .It Li "mouse_sgr_flag" Ta "" Ta "Pane mouse SGR flag" .It Li "mouse_standard_flag" Ta "" Ta "Pane mouse standard flag" +.It Li "mouse_status_line" Ta "" Ta "Status line on which mouse event took place" +.It Li "mouse_status_range" Ta "" Ta "Range type or argument of mouse event on status line" .It Li "mouse_utf8_flag" Ta "" Ta "Pane mouse UTF-8 flag" .It Li "mouse_word" Ta "" Ta "Word under mouse, if any" .It Li "mouse_x" Ta "" Ta "Mouse X position, if any" @@ -5201,6 +5499,7 @@ The following variables are available, where appropriate: .It Li "pane_title" Ta "#T" Ta "Title of pane (can be set by application)" .It Li "pane_top" Ta "" Ta "Top of pane" .It Li "pane_tty" Ta "" Ta "Pseudo terminal of pane" +.It Li "pane_unseen_changes" Ta "" Ta "1 if there were changes in pane while in mode" .It Li "pane_width" Ta "" Ta "Width of pane" .It Li "pid" Ta "" Ta "Server PID" .It Li "rectangle_toggle" Ta "" Ta "1 if rectangle selection is activated" @@ -5215,6 +5514,7 @@ The following variables are available, where appropriate: .It Li "selection_present" Ta "" Ta "1 if selection started in copy mode" .It Li "selection_start_x" Ta "" Ta "X position of the start of the selection" .It Li "selection_start_y" Ta "" Ta "Y position of the start of the selection" +.It Li "server_sessions" Ta "" Ta "Number of sessions" .It Li "session_activity" Ta "" Ta "Time of session last activity" .It Li "session_alerts" Ta "" Ta "List of window indexes with alerts" .It Li "session_attached" Ta "" Ta "Number of clients session is attached to" @@ -5323,6 +5623,8 @@ for the terminal default colour; or a hexadecimal RGB string such as .Ql #ffffff . .It Ic bg=colour Set the background colour. +.It Ic us=colour +Set the underscore colour. .It Ic none Set no attributes (turn off any active attributes). .It Xo Ic acs , @@ -5369,8 +5671,8 @@ option: .Ic list=on marks the start of the list; .Ic list=focus -is the part of the list that should be kept in focus if the entire list won't fit -in the available space (typically the current window); +is the part of the list that should be kept in focus if the entire list won't +fit in the available space (typically the current window); .Ic list=left-marker and .Ic list=right-marker @@ -5392,26 +5694,56 @@ Only one default may be pushed (each replaces the previous saved default). .It Xo Ic range=left , .Ic range=right , +.Ic range=session|X , .Ic range=window|X , +.Ic range=pane|X , +.Ic range=user|X , .Ic norange .Xc -Mark a range in the +Mark a range for mouse events in the .Ic status-format option. +When a mouse event occurs in the .Ic range=left -and +or .Ic range=right -are the text used for the +range, the .Ql StatusLeft and .Ql StatusRight -mouse keys. +key bindings are triggered. +.Pp +.Ic range=session|X , .Ic range=window|X -is the range for a window passed to the +and +.Ic range=pane|X +are ranges for a session, window or pane. +These trigger the .Ql Status -mouse key, where +mouse key with the target session, window or pane given by the .Ql X -is a window index. +argument. +.Ql X +is a session ID, window index in the current session or a pane ID. +For these, the +.Ic mouse_status_range +format variable will be set to +.Ql session , +.Ql window +or +.Ql pane . +.Pp +.Ic range=user|X +is a user-defined range; it triggers the +.Ql Status +mouse key. +The argument +.Ql X +will be available in the +.Ic mouse_status_range +format variable. +.Ql X +must be at most 15 bytes in length. .El .Pp Examples are: @@ -5459,7 +5791,7 @@ An escape sequence (if the .Ic allow-rename option is turned on): .Bd -literal -offset indent -$ printf '\e033kWINDOW_NAME\e033\e\e' +$ printf \[aq]\e033kWINDOW_NAME\e033\e\e\[aq] .Ed .It Automatic renaming, which sets the name to the active command in the window's @@ -5472,7 +5804,7 @@ option. When a pane is first created, its title is the hostname. A pane's title can be set via the title setting escape sequence, for example: .Bd -literal -offset indent -$ printf '\e033]2;My Title\e033\e\e' +$ printf \[aq]\e033]2;My Title\e033\e\e\[aq] .Ed .Pp It can also be modified with the @@ -5597,7 +5929,7 @@ The flag is one of the following symbols appended to the window name: .It Li "-" Ta "Marks the last window (previously selected)." .It Li "#" Ta "Window activity is monitored and activity has been detected." .It Li "\&!" Ta "Window bells are monitored and a bell has occurred in the window." -.It Li "~" Ta "The window has been silent for the monitor-silence interval." +.It Li "\[ti]" Ta "The window has been silent for the monitor-silence interval." .It Li "M" Ta "The window contains the marked pane." .It Li "Z" Ta "The window's active pane is zoomed." .El @@ -5747,7 +6079,8 @@ the prompt is shown in the background and the invoking client does not exit until it is dismissed. .Tg confirm .It Xo Ic confirm-before -.Op Fl b +.Op Fl by +.Op Fl c Ar confirm-key .Op Fl p Ar prompt .Op Fl t Ar target-client .Ar command @@ -5768,18 +6101,30 @@ With .Fl b , the prompt is shown in the background and the invoking client does not exit until it is dismissed. +.Fl y +changes the default behaviour (if Enter alone is pressed) of the prompt to +run the command. +.Fl c +changes the confirmation key to +.Ar confirm-key ; +the default is +.Ql y . .Tg menu .It Xo Ic display-menu .Op Fl O +.Op Fl b Ar border-lines .Op Fl c Ar target-client +.Op Fl C Ar starting-choice +.Op Fl H Ar selected-style +.Op Fl s Ar style +.Op Fl S Ar border-style .Op Fl t Ar target-pane .Op Fl T Ar title .Op Fl x Ar position .Op Fl y Ar position .Ar name .Ar key -.Ar command -.Ar ... +.Ar command Op Ar argument ... .Xc .D1 Pq alias: Ic menu Display a menu on @@ -5800,10 +6145,31 @@ may not be chosen. The name may be empty for a separator line, in which case both the key and command should be omitted. .Pp +.Fl b +sets the type of characters used for drawing menu borders. +See +.Ic popup-border-lines +for possible values for +.Ar border-lines . +.Pp +.Fl H +sets the style for the selected menu item (see +.Sx STYLES ) . +.Pp +.Fl s +sets the style for the menu and +.Fl S +sets the style for the menu border (see +.Sx STYLES ) . +.Pp .Fl T is a format for the menu title (see .Sx FORMATS ) . .Pp +.Fl C +sets the menu item selected by default, if the menu is not bound to a mouse key +binding. +.Pp .Fl x and .Fl y @@ -5862,7 +6228,7 @@ The following keys are also available: .El .Tg display .It Xo Ic display-message -.Op Fl aINpv +.Op Fl aIlNpv .Op Fl c Ar target-client .Op Fl d Ar delay .Op Fl t Ar target-pane @@ -5884,7 +6250,12 @@ is not given, the option is used; a delay of zero waits for a key press. .Ql N ignores key presses and closes only after the delay expires. -The format of +If +.Fl l +is given, +.Ar message +is printed unchanged. +Otherwise, the format of .Ar message is described in the .Sx FORMATS @@ -5910,8 +6281,8 @@ forwards any input read from stdin to the empty pane given by .Op Fl d Ar start-directory .Op Fl e Ar environment .Op Fl h Ar height -.Op Fl s Ar style -.Op Fl S Ar border-style +.Op Fl s Ar border-style +.Op Fl S Ar style .Op Fl t Ar target-pane .Op Fl T Ar title .Op Fl w Ar width @@ -5954,7 +6325,7 @@ If omitted, half of the terminal size is used. does not surround the popup by a border. .Pp .Fl b -sets the type of border line for the popup. +sets the type of characters used for drawing popup borders. When .Fl B is specified, the @@ -5968,12 +6339,8 @@ for possible values for .Fl s sets the style for the popup and .Fl S -sets the style for the popup border. -For how to specify -.Ar style , -see the -.Sx STYLES -section. +sets the style for the popup border (see +.Sx STYLES ) . .Pp .Fl e takes the form @@ -6097,11 +6464,12 @@ is replaced by the buffer name in and the result executed as a command. If .Ar template -is not given, "paste-buffer -b '%%'" is used. +is not given, "paste-buffer -b \[aq]%%\[aq]" is used. .Pp .Fl O specifies the initial sort field: one of -.Ql time , +.Ql time +(creation), .Ql name or .Ql size . @@ -6119,9 +6487,14 @@ a format for each shortcut key; both are evaluated once for each line. starts without the preview. This command works only if at least one client is attached. .Tg clearhist -.It Ic clear-history Op Fl t Ar target-pane +.It Xo Ic clear-history +.Op Fl H +.Op Fl t Ar target-pane +.Xc .D1 Pq alias: Ic clearhist Remove and free the history for the specified pane. +.Fl H +also removes all hyperlinks. .Tg deleteb .It Ic delete-buffer Op Fl b Ar buffer-name .D1 Pq alias: Ic deleteb @@ -6277,6 +6650,7 @@ option. .Tg run .It Xo Ic run-shell .Op Fl bC +.Op Fl c Ar start-directory .Op Fl d Ar delay .Op Fl t Ar target-pane .Op Ar shell-command @@ -6304,6 +6678,10 @@ waits for .Ar delay seconds before starting the command. If +.Fl c +is given, the current working directory is set to +.Ar start-directory . +If .Fl C is not given, any output to stdout is displayed in view mode (in the pane specified by @@ -6385,7 +6763,7 @@ If set, a sequence such as this may be used to change the cursor colour from inside .Nm : .Bd -literal -offset indent -$ printf '\e033]12;red\e033\e\e' +$ printf \[aq]\e033]12;red\e033\e\e\[aq] .Ed .Pp The colour is an @@ -6409,6 +6787,12 @@ Disable and enable focus reporting. These are set automatically if the .Em XT capability is present. +.It Em \&Hls +Set or clear a hyperlink annotation. +.It Em \&Nobr +Tell +.Nm +that the terminal does not use bright colors for bold display. .It Em \&Rect Tell .Nm @@ -6420,16 +6804,22 @@ Set a styled underscore. The single parameter is one of: 0 for no underscore, 1 for normal underscore, 2 for double underscore, 3 for curly underscore, 4 for dotted underscore and 5 for dashed underscore. -.It Em \&Setulc , \&ol +.It Em \&Setulc , \&Setulc1, \&ol Set the underscore colour or reset to the default. -The argument is (red * 65536) + (green * 256) + blue where each is between 0 +.Em Setulc +is for RGB colours and +.Em Setulc1 +for ANSI or 256 colours. +The +.Em Setulc +argument is (red * 65536) + (green * 256) + blue where each is between 0 and 255. .It Em \&Ss , Se Set or reset the cursor style. If set, a sequence such as this may be used to change the cursor to an underline: .Bd -literal -offset indent -$ printf '\e033[4 q' +$ printf \[aq]\e033[4 q\[aq] .Ed .Pp If @@ -6440,6 +6830,8 @@ Set the opening sequence for the working directory notification. The sequence is terminated using the standard .Em fsl capability. +.It Em \&Sxl +Indicates that the terminal supports SIXEL. .It Em \&Sync Start (parameter is 1) or end (parameter is 2) a synchronized update. .It Em \&Tc @@ -6498,8 +6890,8 @@ and matching .Em %end or .Em %error -have three arguments: an integer time (as seconds from epoch), command number and -flags (currently not used). +have three arguments: an integer time (as seconds from epoch), command number +and flags (currently not used). For example: .Bd -literal -offset indent %begin 1363006971 2 1 @@ -6526,6 +6918,8 @@ The client is now attached to the session with ID .Ar session-id , which is named .Ar name . +.It Ic %config-error Ar error +An error has happened in a configuration file. .It Ic %continue Ar pane-id The pane has been continued after being paused (if the .Ar pause-after @@ -6547,11 +6941,17 @@ sent when the .Ar pause-after flag is set. .Ar age -is the time in milliseconds for which tmux had buffered the output before it was sent. +is the time in milliseconds for which tmux had buffered the output before it +was sent. Any subsequent arguments up until a single .Ql \&: are for future use and should be ignored. -.It Ic %layout-change Ar window-id Ar window-layout Ar window-visible-layout Ar window-flags +.It Xo Ic %layout-change +.Ar window-id +.Ar window-layout +.Ar window-visible-layout +.Ar window-flags +.Xc The layout of a window with ID .Ar window-id changed. @@ -6561,6 +6961,10 @@ The window's visible layout is .Ar window-visible-layout and the window flags are .Ar window-flags . +.It Ic %message Ar message +A message sent with the +.Ic display-message +command. .It Ic %output Ar pane-id Ar value A window pane produced output. .Ar value @@ -6569,6 +6973,14 @@ escapes non-printable characters and backslash as octal \\xxx. The pane with ID .Ar pane-id has changed mode. +.It Ic %paste-buffer-changed Ar name +Paste buffer +.Ar name +has been changed. +.It Ic %paste-buffer-deleted Ar name +Paste buffer +.Ar name +has been deleted. .It Ic %pause Ar pane-id The pane has been paused (if the .Ar pause-after @@ -6726,9 +7138,9 @@ options. .El .Sh FILES .Bl -tag -width "@SYSCONFDIR@/tmux.confXXX" -compact -.It Pa ~/.tmux.conf +.It Pa \[ti]/.tmux.conf .It Pa $XDG_CONFIG_HOME/tmux/tmux.conf -.It Pa ~/.config/tmux/tmux.conf +.It Pa \[ti]/.config/tmux/tmux.conf Default .Nm configuration file. @@ -6794,7 +7206,7 @@ to exit from it. Commands to be run when the .Nm server is started may be placed in the -.Pa ~/.tmux.conf +.Pa \[ti]/.tmux.conf configuration file. Common examples include: .Pp @@ -6821,8 +7233,8 @@ set-option -g lock-after-time 1800 Creating new key bindings: .Bd -literal -offset indent 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'" +bind-key / command-prompt "split-window \[aq]exec man %%\[aq]" +bind-key S command-prompt "new-window -n %1 \[aq]ssh %1\[aq]" .Ed .Sh SEE ALSO .Xr pty 4 |