Rework of copy mode commands ("send-keys -X") to parse the arguments so

that flags may be detected propertly rather than just looking for
strings ("-O" and so on). Also add -C and -P flags to the copy commands:
-C prevents the commands from sending the text to the clipboard and -P
prevents them from adding the text as a paste buffer.

Note some of the default key bindings change to add "--" and any similar
custom key bindings using "send-keys -X" may need a similar change.

GitHub issue 4153.
This commit is contained in:
nicm
2024-10-04 07:03:08 +00:00
parent 780a87be9a
commit 9f2a853d87
3 changed files with 241 additions and 272 deletions

24
tmux.1
View File

@ -1801,6 +1801,7 @@ Exit copy mode.
Clear the current selection.
.It Xo
.Ic copy-end-of-line
.Op Fl CP
.Op Ar prefix
.Xc
Copy from the cursor position to the end of the line.
@ -1808,11 +1809,13 @@ Copy from the cursor position to the end of the line.
is used to name the new paste buffer.
.It Xo
.Ic copy-end-of-line-and-cancel
.Op Fl CP
.Op Ar prefix
.Xc
Copy from the cursor position and exit copy mode.
.It Xo
.Ic copy-pipe-end-of-line
.Op Fl CP
.Op Ar command
.Op Ar prefix
.Xc
@ -1822,6 +1825,7 @@ Copy from the cursor position to the end of the line and pipe the text to
is used to name the new paste buffer.
.It Xo
.Ic copy-pipe-end-of-line-and-cancel
.Op Fl CP
.Op Ar command
.Op Ar prefix
.Xc
@ -1830,16 +1834,19 @@ Same as
but also exit copy mode.
.It Xo
.Ic copy-line
.Op Fl CP
.Op Ar prefix
.Xc
Copy the entire line.
.It Xo
.Ic copy-line-and-cancel
.Op Fl CP
.Op Ar prefix
.Xc
Copy the entire line and exit copy mode.
.It Xo
.Ic copy-pipe-line
.Op Fl CP
.Op Ar command
.Op Ar prefix
.Xc
@ -1849,6 +1856,7 @@ Copy the entire line and pipe the text to
is used to name the new paste buffer.
.It Xo
.Ic copy-pipe-line-and-cancel
.Op Fl CP
.Op Ar command
.Op Ar prefix
.Xc
@ -1857,6 +1865,7 @@ Same as
but also exit copy mode.
.It Xo
.Ic copy-pipe
.Op Fl CP
.Op Ar command
.Op Ar prefix
.Xc
@ -1866,6 +1875,7 @@ Copy the selection, clear it and pipe its text to
is used to name the new paste buffer.
.It Xo
.Ic copy-pipe-no-clear
.Op Fl CP
.Op Ar command
.Op Ar prefix
.Xc
@ -1874,6 +1884,7 @@ Same as
but do not clear the selection.
.It Xo
.Ic copy-pipe-and-cancel
.Op Fl CP
.Op Ar command
.Op Ar prefix
.Xc
@ -1882,11 +1893,13 @@ Same as
but also exit copy mode.
.It Xo
.Ic copy-selection
.Op Fl CP
.Op Ar prefix
.Xc
Copies the current selection.
.It Xo
.Ic copy-selection-no-clear
.Op Fl CP
.Op Ar prefix
.Xc
Same as
@ -1894,6 +1907,7 @@ Same as
but do not clear the selection.
.It Xo
.Ic copy-selection-and-cancel
.Op Fl CP
.Op Ar prefix
(vi: Enter)
(emacs: M-w)
@ -2341,6 +2355,16 @@ variants of some commands exit copy mode after they have completed (for copy
commands) or when the cursor reaches the bottom (for scrolling commands).
.Ql -no-clear
variants do not clear the selection.
All the copy commands can take the
.Fl C
and
.Fl P
flags.
The
.Fl C
flag suppresses setting the terminal clipboard when copying, while the
.Fl P
flag suppresses adding a paste buffer with the text.
.Pp
The next and previous word keys skip over whitespace and treat consecutive
runs of either word separators or other letters as words.