=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/tmux.1,v retrieving revision 1.933 retrieving revision 1.934 diff -c -r1.933 -r1.934 *** src/usr.bin/tmux/tmux.1 2023/09/16 16:18:29 1.933 --- src/usr.bin/tmux/tmux.1 2023/12/27 20:20:50 1.934 *************** *** 1,4 **** ! .\" $OpenBSD: tmux.1,v 1.933 2023/09/16 16:18:29 nicm Exp $ .\" .\" Copyright (c) 2007 Nicholas Marriott .\" --- 1,4 ---- ! .\" $OpenBSD: tmux.1,v 1.934 2023/12/27 20:20:50 nicm Exp $ .\" .\" Copyright (c) 2007 Nicholas Marriott .\" *************** *** 14,20 **** .\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING .\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" ! .Dd $Mdocdate: September 16 2023 $ .Dt TMUX 1 .Os .Sh NAME --- 14,20 ---- .\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING .\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" ! .Dd $Mdocdate: December 27 2023 $ .Dt TMUX 1 .Os .Sh NAME *************** *** 140,146 **** loads the system configuration file from .Pa /etc/tmux.conf , if present, then looks for a user configuration file at ! .Pa ~/.tmux.conf . .Pp The configuration file is a set of .Nm --- 140,146 ---- loads the system configuration file from .Pa /etc/tmux.conf , if present, then looks for a user configuration file at ! .Pa \[ti]/.tmux.conf . .Pp The configuration file is a set of .Nm *************** *** 287,293 **** Split the current pane into two, left and right. .It & Kill the current window. ! .It ' Prompt for a window index to select. .It \&( Switch the attached client to the previous session. --- 287,293 ---- Split the current pane into two, left and right. .It & Kill the current window. ! .It \[aq] Prompt for a window index to select. .It \&( Switch the attached client to the previous session. *************** *** 359,365 **** Swap the current pane with the previous pane. .It } Swap the current pane with the next pane. ! .It ~ Show previous messages from .Nm , if any. --- 359,365 ---- Swap the current pane with the previous pane. .It } Swap the current pane with the next pane. ! .It \[ti] Show previous messages from .Nm , if any. *************** *** 405,411 **** For example, the same .Ic set-option command run from the shell prompt, from ! .Pa ~/.tmux.conf and bound to a key may look like: .Bd -literal -offset indent $ tmux set-option -g status-style bg=cyan --- 405,411 ---- For example, the same .Ic set-option command run from the shell prompt, from ! .Pa \[ti]/.tmux.conf and bound to a key may look like: .Bd -literal -offset indent $ tmux set-option -g status-style bg=cyan *************** *** 458,464 **** .Ql command queue . A global command queue not attached to any client is used on startup for configuration files like ! .Pa ~/.tmux.conf . Parsed commands added to the queue are executed in order. Some commands, like .Ic if-shell --- 458,464 ---- .Ql command queue . A global command queue not attached to any client is used on startup for configuration files like ! .Pa \[ti]/.tmux.conf . Parsed commands added to the queue are executed in order. Some commands, like .Ic if-shell *************** *** 530,536 **** .Pp Or: .Bd -literal -offset indent ! $ tmux neww ';' splitw .Ed .Pp Or from the tmux command prompt: --- 530,536 ---- .Pp Or: .Bd -literal -offset indent ! $ tmux neww \[aq];\[aq] splitw .Ed .Pp Or from the tmux command prompt: *************** *** 548,554 **** .Pp Or: .Bd -literal -offset indent ! $ tmux 'neww;' splitw .Ed .Pp As in these examples, when running tmux from the shell extra care must be taken --- 548,554 ---- .Pp Or: .Bd -literal -offset indent ! $ tmux \[aq]neww;\[aq] splitw .Ed .Pp As in these examples, when running tmux from the shell extra care must be taken *************** *** 560,566 **** For .Xr sh 1 this typically means quoted (such as ! .Ql neww ';' splitw ) or escaped (such as .Ql neww \e\e\e\e; splitw ) . .It --- 560,566 ---- For .Xr sh 1 this typically means quoted (such as ! .Ql neww \[aq];\[aq] splitw ) or escaped (such as .Ql neww \e\e\e\e; splitw ) . .It *************** *** 570,583 **** .Nm ; for example: .Bd -literal -offset indent ! $ tmux neww 'foo\e\e;' 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 foo-\e\e;-bar .Ed .El --- 570,583 ---- .Nm ; for example: .Bd -literal -offset indent ! $ 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 \[aq]foo-;-bar\[aq] $ tmux neww foo-\e\e;-bar .Ed .El *************** *** 590,597 **** 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 ({}). .\" " This is required when the argument contains any special character. Single and double quoted strings cannot span multiple lines except with line --- 590,597 ---- 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 (\[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 *************** *** 606,612 **** .Sx GLOBAL AND SESSION ENVIRONMENT section). .It ! A leading ~ or ~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 --- 606,612 ---- .Sx GLOBAL AND SESSION ENVIRONMENT section). .It ! 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 *************** *** 638,647 **** needed when using {}: .Bd -literal -offset indent if-shell true { ! display -p 'brace-dollar-foo: }$foo' } ! if-shell true "display -p 'brace-dollar-foo: }\e$foo'" .Ed .Pp Braces may be enclosed inside braces, for example: --- 638,647 ---- needed when using {}: .Bd -literal -offset indent if-shell true { ! display -p \[aq]brace-dollar-foo: }$foo\[aq] } ! if-shell true "display -p \[aq]brace-dollar-foo: }\e$foo\[aq]" .Ed .Pp Braces may be enclosed inside braces, for example: *************** *** 892,898 **** or .Ql {marked} (alternative form ! .Ql ~ ) to specify the marked pane (see .Ic select-pane .Fl m ) . --- 892,898 ---- or .Ql {marked} (alternative form ! .Ql \[ti] ) to specify the marked pane (see .Ic select-pane .Fl m ) . *************** *** 932,943 **** commands. This may be a single argument passed to the shell, for example: .Bd -literal -offset indent ! new-window 'vi ~/.tmux.conf' .Ed .Pp Will run: .Bd -literal -offset indent ! /bin/sh -c 'vi ~/.tmux.conf' .Ed .Pp Additionally, the --- 932,943 ---- commands. This may be a single argument passed to the shell, for example: .Bd -literal -offset indent ! new-window \[aq]vi \[ti]/.tmux.conf\[aq] .Ed .Pp Will run: .Bd -literal -offset indent ! /bin/sh -c \[aq]vi \[ti]/.tmux.conf\[aq] .Ed .Pp Additionally, the *************** *** 954,960 **** This can avoid issues with shell quoting. For example: .Bd -literal -offset indent ! $ tmux new-window vi ~/.tmux.conf .Ed .Pp Will run --- 954,960 ---- This can avoid issues with shell quoting. For example: .Bd -literal -offset indent ! $ tmux new-window vi \[ti]/.tmux.conf .Ed .Pp Will run *************** *** 989,995 **** new-window ; split-window -d ! bind-key R source-file ~/.tmux.conf \e; \e display-message "source-file done" .Ed .Pp --- 989,995 ---- new-window ; split-window -d ! bind-key R source-file \[ti]/.tmux.conf \e; \e display-message "source-file done" .Ed .Pp *************** *** 1000,1006 **** $ tmux new-window \e; split-window -d ! $ tmux new-session -d 'vi ~/.tmux.conf' \e; split-window -d \e; attach .Ed .Sh CLIENTS AND SESSIONS The --- 1000,1006 ---- $ tmux new-window \e; split-window -d ! $ tmux new-session -d \[aq]vi \[ti]/.tmux.conf\[aq] \e; split-window -d \e; attach .Ed .Sh CLIENTS AND SESSIONS The *************** *** 1581,1587 **** .Nm server will exit with no sessions, this is only useful if a session is created in ! .Pa ~/.tmux.conf , .Ic exit-empty is turned off, or another command is run as part of the same command sequence. For example: --- 1581,1587 ---- .Nm 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: *************** *** 2171,2177 **** $ 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}' .Ed .Pp .Nm --- 2171,2177 ---- $ tmux list-windows 0: ksh [159x48] 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 *************** *** 2311,2317 **** and the result executed as a command. If .Ar template ! is not given, "detach-client -t '%%'" is used. .Pp .Fl O specifies the initial sort field: one of --- 2311,2317 ---- and the result executed as a command. If .Ar template ! is not given, "detach-client -t \[aq]%%\[aq]" is used. .Pp .Fl O specifies the initial sort field: one of *************** *** 2396,2402 **** and the result executed as a command. If .Ar template ! is not given, "switch-client -t '%%'" is used. .Pp .Fl O specifies the initial sort field: one of --- 2396,2402 ---- and the result executed as a command. If .Ar template ! is not given, "switch-client -t \[aq]%%\[aq]" is used. .Pp .Fl O specifies the initial sort field: one of *************** *** 2508,2514 **** substituted by the pane ID. The default .Ar template ! is "select-pane -t '%%'". With .Fl b , other commands are not blocked from running until the indicator is closed. --- 2508,2514 ---- substituted by the pane ID. The default .Ar template ! is "select-pane -t \[aq]%%\[aq]". With .Fl b , other commands are not blocked from running until the indicator is closed. *************** *** 2870,2876 **** 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' .Ed .Tg prevl .It Xo Ic previous-layout --- 2870,2876 ---- 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 \[aq]cat >>\[ti]/output.#I-#P\[aq] .Ed .Tg prevl .It Xo Ic previous-layout *************** *** 3174,3180 **** .Pp An empty .Ar shell-command ! ('') will create a pane with no command running in it. Output can be sent to such a pane with the .Ic display-message command. --- 3174,3180 ---- .Pp An empty .Ar shell-command ! (\[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. *************** *** 3301,3311 **** Note that to bind the .Ql \&" or ! .Ql ' keys, quotation marks are necessary, for example: .Bd -literal -offset indent ! bind-key '"' split-window ! bind-key "'" new-window .Ed .Pp A command bound to the --- 3301,3311 ---- Note that to bind the .Ql \&" or ! .Ql \[aq] keys, quotation marks are necessary, for example: .Bd -literal -offset indent ! bind-key \[aq]"\[aq] split-window ! bind-key "\[aq]" new-window .Ed .Pp A command bound to the *************** *** 3701,3707 **** .Ar value . For example, after: .Pp ! .Dl set -s command-alias[100] zoom='resize-pane -Z' .Pp Using: .Pp --- 3701,3707 ---- .Ar value . For example, after: .Pp ! .Dl set -s command-alias[100] zoom=\[aq]resize-pane -Z\[aq] .Pp Using: .Pp *************** *** 3939,3945 **** .Pp For example: .Bd -literal -offset indent ! set -s user-keys[0] "\ee[5;30012~" bind User0 resize-pane -L 3 .Ed .El --- 3939,3945 ---- .Pp For example: .Bd -literal -offset indent ! set -s user-keys[0] "\ee[5;30012\[ti]" bind User0 resize-pane -L 3 .Ed .El *************** *** 4838,4845 **** .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' .Ed .Pp Setting a hook without specifying an array index clears the hook and sets the --- 4838,4845 ---- .Fl H . The following two commands are equivalent: .Bd -literal -offset indent. ! 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 *************** *** 5778,5784 **** .Ic allow-rename option is turned on): .Bd -literal -offset indent ! $ printf '\e033kWINDOW_NAME\e033\e\e' .Ed .It Automatic renaming, which sets the name to the active command in the window's --- 5778,5784 ---- .Ic allow-rename option is turned on): .Bd -literal -offset indent ! $ printf \[aq]\e033kWINDOW_NAME\e033\e\e\[aq] .Ed .It Automatic renaming, which sets the name to the active command in the window's *************** *** 5791,5797 **** 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' .Ed .Pp It can also be modified with the --- 5791,5797 ---- 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 \[aq]\e033]2;My Title\e033\e\e\[aq] .Ed .Pp It can also be modified with the *************** *** 5916,5922 **** .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 "M" Ta "The window contains the marked pane." .It Li "Z" Ta "The window's active pane is zoomed." .El --- 5916,5922 ---- .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 "\[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 *************** *** 6451,6457 **** and the result executed as a command. If .Ar template ! is not given, "paste-buffer -b '%%'" is used. .Pp .Fl O specifies the initial sort field: one of --- 6451,6457 ---- and the result executed as a command. If .Ar template ! is not given, "paste-buffer -b \[aq]%%\[aq]" is used. .Pp .Fl O specifies the initial sort field: one of *************** *** 6750,6756 **** to change the cursor colour from inside .Nm : .Bd -literal -offset indent ! $ printf '\e033]12;red\e033\e\e' .Ed .Pp The colour is an --- 6750,6756 ---- to change the cursor colour from inside .Nm : .Bd -literal -offset indent ! $ printf \[aq]\e033]12;red\e033\e\e\[aq] .Ed .Pp The colour is an *************** *** 6806,6812 **** 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' .Ed .Pp If --- 6806,6812 ---- If set, a sequence such as this may be used to change the cursor to an underline: .Bd -literal -offset indent ! $ printf \[aq]\e033[4 q\[aq] .Ed .Pp If *************** *** 7125,7131 **** .El .Sh FILES .Bl -tag -width "/etc/tmux.confXXX" -compact ! .It Pa ~/.tmux.conf Default .Nm configuration file. --- 7125,7131 ---- .El .Sh FILES .Bl -tag -width "/etc/tmux.confXXX" -compact ! .It Pa \[ti]/.tmux.conf Default .Nm configuration file. *************** *** 7191,7197 **** Commands to be run when the .Nm server is started may be placed in the ! .Pa ~/.tmux.conf configuration file. Common examples include: .Pp --- 7191,7197 ---- Commands to be run when the .Nm server is started may be placed in the ! .Pa \[ti]/.tmux.conf configuration file. Common examples include: .Pp *************** *** 7218,7225 **** 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'" .Ed .Sh SEE ALSO .Xr pty 4 --- 7218,7225 ---- Creating new key bindings: .Bd -literal -offset indent bind-key b set-option status ! 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