Add a -S flag to new-window to make it select the existing window if one

with the given name already exists rather than failing with an error.
Also add a format to check if a window or session name exists which
allows the same with other commands. Requested by and discussed with
kn@.
This commit is contained in:
nicm
2021-02-05 12:23:49 +00:00
parent c13f2e1135
commit be471c328e
3 changed files with 114 additions and 6 deletions

21
tmux.1
View File

@ -2348,7 +2348,7 @@ the
.Ic base-index
option.
.It Xo Ic new-window
.Op Fl abdkP
.Op Fl abdkPS
.Op Fl c Ar start-directory
.Op Fl e Ar environment
.Op Fl F Ar format
@ -2377,6 +2377,14 @@ represents the window to be created; if the target already exists an error is
shown, unless the
.Fl k
flag is used, in which case it is destroyed.
If
.Fl S
is given and a window named
.Ar window-name
already exists, it is selected (unless
.Fl d
is also given in which case the command does nothing).
.Pp
.Ar shell-command
is the command to execute.
If
@ -4688,6 +4696,17 @@ For example, to get a list of windows formatted like the status line:
#{W:#{E:window-status-format} ,#{E:window-status-current-format} }
.Ed
.Pp
.Ql N:\&
checks if a window (without any suffix or with the
.Ql w
suffix) or a session (with the
.Ql s
suffix) name exists, for example
.Ql `N/w:foo`
is replaced with 1 if a window named
.Ql foo
exists.
.Pp
A prefix of the form
.Ql s/foo/bar/:\&
will substitute