mirror of
https://github.com/tmux/tmux.git
synced 2025-09-02 13:37:12 +00:00
Merge branch 'obsd-master'
This commit is contained in:
42
input.c
42
input.c
@ -1349,7 +1349,7 @@ input_csi_dispatch(struct input_ctx *ictx)
|
|||||||
struct screen_write_ctx *sctx = &ictx->ctx;
|
struct screen_write_ctx *sctx = &ictx->ctx;
|
||||||
struct screen *s = sctx->s;
|
struct screen *s = sctx->s;
|
||||||
struct input_table_entry *entry;
|
struct input_table_entry *entry;
|
||||||
int i, n, m;
|
int i, n, m, ek;
|
||||||
u_int cx, bg = ictx->cell.cell.bg;
|
u_int cx, bg = ictx->cell.cell.bg;
|
||||||
|
|
||||||
if (ictx->flags & INPUT_DISCARD)
|
if (ictx->flags & INPUT_DISCARD)
|
||||||
@ -1407,30 +1407,36 @@ input_csi_dispatch(struct input_ctx *ictx)
|
|||||||
break;
|
break;
|
||||||
case INPUT_CSI_MODSET:
|
case INPUT_CSI_MODSET:
|
||||||
n = input_get(ictx, 0, 0, 0);
|
n = input_get(ictx, 0, 0, 0);
|
||||||
m = input_get(ictx, 1, 0, 0);
|
if (n != 4)
|
||||||
/*
|
|
||||||
* Set the extended key reporting mode as per the client request,
|
|
||||||
* unless "extended-keys always" forces us into mode 1.
|
|
||||||
*/
|
|
||||||
if (options_get_number(global_options, "extended-keys") != 1)
|
|
||||||
break;
|
break;
|
||||||
screen_write_mode_clear(sctx,
|
m = input_get(ictx, 1, 0, 0);
|
||||||
MODE_KEYS_EXTENDED|MODE_KEYS_EXTENDED_2);
|
|
||||||
if (n == 4 && m == 1)
|
/*
|
||||||
screen_write_mode_set(sctx, MODE_KEYS_EXTENDED);
|
* Set the extended key reporting mode as per the client
|
||||||
if (n == 4 && m == 2)
|
* request, unless "extended-keys" is set to "off".
|
||||||
|
*/
|
||||||
|
ek = options_get_number(global_options, "extended-keys");
|
||||||
|
if (ek == 0)
|
||||||
|
break;
|
||||||
|
screen_write_mode_clear(sctx, EXTENDED_KEY_MODES);
|
||||||
|
if (m == 2)
|
||||||
screen_write_mode_set(sctx, MODE_KEYS_EXTENDED_2);
|
screen_write_mode_set(sctx, MODE_KEYS_EXTENDED_2);
|
||||||
|
else if (m == 1 || ek == 2)
|
||||||
|
screen_write_mode_set(sctx, MODE_KEYS_EXTENDED);
|
||||||
break;
|
break;
|
||||||
case INPUT_CSI_MODOFF:
|
case INPUT_CSI_MODOFF:
|
||||||
n = input_get(ictx, 0, 0, 0);
|
n = input_get(ictx, 0, 0, 0);
|
||||||
|
if (n != 4)
|
||||||
|
break;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Clear the extended key reporting mode as per the client request,
|
* Clear the extended key reporting mode as per the client
|
||||||
* unless "extended-keys always" forces us into mode 1.
|
* request, unless "extended-keys always" forces into mode 1.
|
||||||
*/
|
*/
|
||||||
if (n == 4) {
|
screen_write_mode_clear(sctx,
|
||||||
screen_write_mode_clear(sctx,
|
MODE_KEYS_EXTENDED|MODE_KEYS_EXTENDED_2);
|
||||||
MODE_KEYS_EXTENDED|MODE_KEYS_EXTENDED_2);
|
if (options_get_number(global_options, "extended-keys") == 2)
|
||||||
}
|
screen_write_mode_set(sctx, MODE_KEYS_EXTENDED);
|
||||||
break;
|
break;
|
||||||
case INPUT_CSI_WINOPS:
|
case INPUT_CSI_WINOPS:
|
||||||
input_csi_dispatch_winops(ictx);
|
input_csi_dispatch_winops(ictx);
|
||||||
|
@ -385,6 +385,17 @@ const struct options_table_entry options_table[] = {
|
|||||||
.text = "Maximum number of server messages to keep."
|
.text = "Maximum number of server messages to keep."
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{ .name = "prefix-timeout",
|
||||||
|
.type = OPTIONS_TABLE_NUMBER,
|
||||||
|
.scope = OPTIONS_TABLE_SERVER,
|
||||||
|
.minimum = 0,
|
||||||
|
.maximum = INT_MAX,
|
||||||
|
.default_num = 0,
|
||||||
|
.unit = "milliseconds",
|
||||||
|
.text = "The timeout for the prefix key if no subsequent key is "
|
||||||
|
"pressed. Zero means disabled."
|
||||||
|
},
|
||||||
|
|
||||||
{ .name = "prompt-history-limit",
|
{ .name = "prompt-history-limit",
|
||||||
.type = OPTIONS_TABLE_NUMBER,
|
.type = OPTIONS_TABLE_NUMBER,
|
||||||
.scope = OPTIONS_TABLE_SERVER,
|
.scope = OPTIONS_TABLE_SERVER,
|
||||||
|
@ -222,6 +222,17 @@ server_client_set_key_table(struct client *c, const char *name)
|
|||||||
key_bindings_unref_table(c->keytable);
|
key_bindings_unref_table(c->keytable);
|
||||||
c->keytable = key_bindings_get_table(name, 1);
|
c->keytable = key_bindings_get_table(name, 1);
|
||||||
c->keytable->references++;
|
c->keytable->references++;
|
||||||
|
if (gettimeofday(&c->keytable->activity_time, NULL) != 0)
|
||||||
|
fatal("gettimeofday failed");
|
||||||
|
}
|
||||||
|
|
||||||
|
static uint64_t
|
||||||
|
server_client_key_table_activity_diff(struct client *c)
|
||||||
|
{
|
||||||
|
struct timeval diff;
|
||||||
|
|
||||||
|
timersub(&c->activity_time, &c->keytable->activity_time, &diff);
|
||||||
|
return ((diff.tv_sec * 1000ULL) + (diff.tv_usec / 1000ULL));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get default key table. */
|
/* Get default key table. */
|
||||||
@ -1866,7 +1877,7 @@ server_client_key_callback(struct cmdq_item *item, void *data)
|
|||||||
struct key_table *table, *first;
|
struct key_table *table, *first;
|
||||||
struct key_binding *bd;
|
struct key_binding *bd;
|
||||||
int xtimeout;
|
int xtimeout;
|
||||||
uint64_t flags;
|
uint64_t flags, prefix_delay;
|
||||||
struct cmd_find_state fs;
|
struct cmd_find_state fs;
|
||||||
key_code key0, prefix, prefix2;
|
key_code key0, prefix, prefix2;
|
||||||
|
|
||||||
@ -1961,8 +1972,34 @@ try_again:
|
|||||||
if (c->flags & CLIENT_REPEAT)
|
if (c->flags & CLIENT_REPEAT)
|
||||||
log_debug("currently repeating");
|
log_debug("currently repeating");
|
||||||
|
|
||||||
/* Try to see if there is a key binding in the current table. */
|
|
||||||
bd = key_bindings_get(table, key0);
|
bd = key_bindings_get(table, key0);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If prefix-timeout is enabled and we're in the prefix table, see if
|
||||||
|
* the timeout has been exceeded. Revert to the root table if so.
|
||||||
|
*/
|
||||||
|
prefix_delay = options_get_number(global_options, "prefix-timeout");
|
||||||
|
if (prefix_delay > 0 &&
|
||||||
|
strcmp(table->name, "prefix") == 0 &&
|
||||||
|
server_client_key_table_activity_diff(c) > prefix_delay) {
|
||||||
|
/*
|
||||||
|
* If repeating is active and this is a repeating binding,
|
||||||
|
* ignore the timeout.
|
||||||
|
*/
|
||||||
|
if (bd != NULL &&
|
||||||
|
(c->flags & CLIENT_REPEAT) &&
|
||||||
|
(bd->flags & KEY_BINDING_REPEAT)) {
|
||||||
|
log_debug("prefix timeout ignored, repeat is active");
|
||||||
|
} else {
|
||||||
|
log_debug("prefix timeout exceeded");
|
||||||
|
server_client_set_key_table(c, NULL);
|
||||||
|
first = table = c->keytable;
|
||||||
|
server_status_client(c);
|
||||||
|
goto table_changed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Try to see if there is a key binding in the current table. */
|
||||||
if (bd != NULL) {
|
if (bd != NULL) {
|
||||||
/*
|
/*
|
||||||
* Key was matched in this table. If currently repeating but a
|
* Key was matched in this table. If currently repeating but a
|
||||||
|
284
tmux.1
284
tmux.1
@ -1814,6 +1814,23 @@ is used to name the new paste buffer.
|
|||||||
.Xc
|
.Xc
|
||||||
Copy from the cursor position and exit copy mode.
|
Copy from the cursor position and exit copy mode.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic copy-pipe-end-of-line
|
||||||
|
.Op Ar command
|
||||||
|
.Op Ar prefix
|
||||||
|
.Xc
|
||||||
|
Copy from the cursor position to the end of the line and pipe the text to
|
||||||
|
.Ar command .
|
||||||
|
.Ar prefix
|
||||||
|
is used to name the new paste buffer.
|
||||||
|
.It Xo
|
||||||
|
.Ic copy-pipe-end-of-line-and-cancel
|
||||||
|
.Op Ar command
|
||||||
|
.Op Ar prefix
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic copy-pipe-end-of-line
|
||||||
|
but also exit copy mode.
|
||||||
|
.It Xo
|
||||||
.Ic copy-line
|
.Ic copy-line
|
||||||
.Op Ar prefix
|
.Op Ar prefix
|
||||||
.Xc
|
.Xc
|
||||||
@ -1824,11 +1841,60 @@ Copy the entire line.
|
|||||||
.Xc
|
.Xc
|
||||||
Copy the entire line and exit copy mode.
|
Copy the entire line and exit copy mode.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic copy-pipe-line
|
||||||
|
.Op Ar command
|
||||||
|
.Op Ar prefix
|
||||||
|
.Xc
|
||||||
|
Copy the entire line and pipe the text to
|
||||||
|
.Ar command .
|
||||||
|
.Ar prefix
|
||||||
|
is used to name the new paste buffer.
|
||||||
|
.It Xo
|
||||||
|
.Ic copy-pipe-line-and-cancel
|
||||||
|
.Op Ar command
|
||||||
|
.Op Ar prefix
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic copy-pipe-line
|
||||||
|
but also exit copy mode.
|
||||||
|
.It Xo
|
||||||
|
.Ic copy-pipe
|
||||||
|
.Op Ar command
|
||||||
|
.Op Ar prefix
|
||||||
|
.Xc
|
||||||
|
Copy the selection, clear it and pipe its text to
|
||||||
|
.Ar command .
|
||||||
|
.Ar prefix
|
||||||
|
is used to name the new paste buffer.
|
||||||
|
.It Xo
|
||||||
|
.Ic copy-pipe-no-clear
|
||||||
|
.Op Ar command
|
||||||
|
.Op Ar prefix
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic copy-pipe
|
||||||
|
but do not clear the selection.
|
||||||
|
.It Xo
|
||||||
|
.Ic copy-pipe-and-cancel
|
||||||
|
.Op Ar command
|
||||||
|
.Op Ar prefix
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic copy-pipe
|
||||||
|
but also exit copy mode.
|
||||||
|
.It Xo
|
||||||
.Ic copy-selection
|
.Ic copy-selection
|
||||||
.Op Ar prefix
|
.Op Ar prefix
|
||||||
.Xc
|
.Xc
|
||||||
Copies the current selection.
|
Copies the current selection.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic copy-selection-no-clear
|
||||||
|
.Op Ar prefix
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic copy-selection
|
||||||
|
but do not clear the selection.
|
||||||
|
.It Xo
|
||||||
.Ic copy-selection-and-cancel
|
.Ic copy-selection-and-cancel
|
||||||
.Op Ar prefix
|
.Op Ar prefix
|
||||||
(vi: Enter)
|
(vi: Enter)
|
||||||
@ -1842,6 +1908,12 @@ Copy the current selection and exit copy mode.
|
|||||||
.Xc
|
.Xc
|
||||||
Move the cursor down.
|
Move the cursor down.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic cursor-down-and-cancel
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic cursor-down
|
||||||
|
but also exit copy mode if reaching the bottom.
|
||||||
|
.It Xo
|
||||||
.Ic cursor-left
|
.Ic cursor-left
|
||||||
(vi: h)
|
(vi: h)
|
||||||
(emacs: Left)
|
(emacs: Left)
|
||||||
@ -1873,6 +1945,24 @@ Move the cursor to the end of the line.
|
|||||||
.Xc
|
.Xc
|
||||||
Move the cursor to a specific line.
|
Move the cursor to a specific line.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic halfpage-down
|
||||||
|
(vi: C-d)
|
||||||
|
(emacs: M-Down)
|
||||||
|
.Xc
|
||||||
|
Scroll down by half a page.
|
||||||
|
.It Xo
|
||||||
|
.Ic halfpage-down-and-cancel
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic halfpage-down
|
||||||
|
but also exit copy mode if reaching the bottom.
|
||||||
|
.It Xo
|
||||||
|
.Ic halfpage-up
|
||||||
|
(vi: C-u)
|
||||||
|
(emacs: M-Up)
|
||||||
|
.Xc
|
||||||
|
Scroll up by half a page.
|
||||||
|
.It Xo
|
||||||
.Ic history-bottom
|
.Ic history-bottom
|
||||||
(vi: G)
|
(vi: G)
|
||||||
(emacs: M->)
|
(emacs: M->)
|
||||||
@ -1905,6 +1995,27 @@ Jump backwards to the specified text.
|
|||||||
.Xc
|
.Xc
|
||||||
Jump forward to the specified text.
|
Jump forward to the specified text.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic jump-reverse
|
||||||
|
(vi: ,)
|
||||||
|
(emacs: ,)
|
||||||
|
.Xc
|
||||||
|
Repeat the last jump in the reverse direction (forward becomes backward and
|
||||||
|
backward becomes forward).
|
||||||
|
.It Xo
|
||||||
|
.Ic jump-to-backward
|
||||||
|
.Ar to
|
||||||
|
(vi: T)
|
||||||
|
.Xc
|
||||||
|
Jump backwards, but one character less, placing the cursor on the character
|
||||||
|
after the target.
|
||||||
|
.It Xo
|
||||||
|
.Ic jump-to-forward
|
||||||
|
.Ar to
|
||||||
|
(vi: t)
|
||||||
|
.Xc
|
||||||
|
Jump forward, but one character less, placing the cursor on the character
|
||||||
|
before the target.
|
||||||
|
.It Xo
|
||||||
.Ic jump-to-mark
|
.Ic jump-to-mark
|
||||||
(vi: M-x)
|
(vi: M-x)
|
||||||
(emacs: M-x)
|
(emacs: M-x)
|
||||||
@ -1939,18 +2050,71 @@ Move to the next prompt.
|
|||||||
.Xc
|
.Xc
|
||||||
Move to the next word.
|
Move to the next word.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic next-word-end
|
||||||
|
(vi: e)
|
||||||
|
(emacs: M-f)
|
||||||
|
.Xc
|
||||||
|
Move to the end of the next word.
|
||||||
|
.It Xo
|
||||||
|
.Ic next-space
|
||||||
|
(vi: W)
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic next-word
|
||||||
|
but use a space alone as the word separator.
|
||||||
|
.It Xo
|
||||||
|
.Ic next-space-end
|
||||||
|
(vi: E)
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic next-word-end
|
||||||
|
but use a space alone as the word separator.
|
||||||
|
.It Xo
|
||||||
|
.Ic other-end
|
||||||
|
(vi: o)
|
||||||
|
.Xc
|
||||||
|
Switch at which end of the selection the cursor sits.
|
||||||
|
.It Xo
|
||||||
.Ic page-down
|
.Ic page-down
|
||||||
(vi: C-f)
|
(vi: C-f)
|
||||||
(emacs: PageDown)
|
(emacs: PageDown)
|
||||||
.Xc
|
.Xc
|
||||||
Scroll down by one page.
|
Scroll down by one page.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic page-down-and-cancel
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic page-down
|
||||||
|
but also exit copy mode if reaching the bottom.
|
||||||
|
.It Xo
|
||||||
.Ic page-up
|
.Ic page-up
|
||||||
(vi: C-b)
|
(vi: C-b)
|
||||||
(emacs: PageUp)
|
(emacs: PageUp)
|
||||||
.Xc
|
.Xc
|
||||||
Scroll up by one page.
|
Scroll up by one page.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic pipe
|
||||||
|
.Op Ar command
|
||||||
|
.Xc
|
||||||
|
Pipe the selected text to
|
||||||
|
.Ar command
|
||||||
|
and clear the selection.
|
||||||
|
.It Xo
|
||||||
|
.Ic pipe-no-clear
|
||||||
|
.Op Ar command
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic pipe
|
||||||
|
but do not clear the selection.
|
||||||
|
.It Xo
|
||||||
|
.Ic pipe-and-cancel
|
||||||
|
.Op Ar command
|
||||||
|
.Op Ar prefix
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic pipe
|
||||||
|
but also exit copy mode.
|
||||||
|
.It Xo
|
||||||
.Ic previous-matching-bracket
|
.Ic previous-matching-bracket
|
||||||
(emacs: M-C-b)
|
(emacs: M-C-b)
|
||||||
.Xc
|
.Xc
|
||||||
@ -1973,6 +2137,21 @@ Move to the previous prompt.
|
|||||||
.Xc
|
.Xc
|
||||||
Move to the previous word.
|
Move to the previous word.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic previous-space
|
||||||
|
(vi: B)
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic previous-word
|
||||||
|
but use a space alone as the word separator.
|
||||||
|
.It Xo
|
||||||
|
.Ic rectangle-on
|
||||||
|
.Xc
|
||||||
|
Turn on rectangle selection mode.
|
||||||
|
.It Xo
|
||||||
|
.Ic rectangle-off
|
||||||
|
.Xc
|
||||||
|
Turn off rectangle selection mode.
|
||||||
|
.It Xo
|
||||||
.Ic rectangle-toggle
|
.Ic rectangle-toggle
|
||||||
(vi: v)
|
(vi: v)
|
||||||
(emacs: R)
|
(emacs: R)
|
||||||
@ -1985,6 +2164,40 @@ Toggle rectangle selection mode.
|
|||||||
.Xc
|
.Xc
|
||||||
Refresh the content from the pane.
|
Refresh the content from the pane.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic scroll-bottom
|
||||||
|
.Xc
|
||||||
|
Scroll up until the current line is at the bottom while keeping the cursor on
|
||||||
|
that line.
|
||||||
|
.It Xo
|
||||||
|
.Ic scroll-down
|
||||||
|
(vi: C-e)
|
||||||
|
(emacs: C-Down)
|
||||||
|
.Xc
|
||||||
|
Scroll down.
|
||||||
|
.It Xo
|
||||||
|
.Ic scroll-down-and-cancel
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic scroll-down
|
||||||
|
but also exit copy mode if the cursor reaches the bottom.
|
||||||
|
.It Xo
|
||||||
|
.Ic scroll-middle
|
||||||
|
(vi: z)
|
||||||
|
.Xc
|
||||||
|
Scroll so that the current line becomes the middle one while keeping the
|
||||||
|
cursor on that line.
|
||||||
|
.It Xo
|
||||||
|
.Ic scroll-top
|
||||||
|
.Xc
|
||||||
|
Scroll down until the current line is at the top while keeping the cursor on
|
||||||
|
that line.
|
||||||
|
.It Xo
|
||||||
|
.Ic scroll-up
|
||||||
|
(vi: C-y)
|
||||||
|
(emacs: C-Up)
|
||||||
|
.Xc
|
||||||
|
Scroll up.
|
||||||
|
.It Xo
|
||||||
.Ic search-again
|
.Ic search-again
|
||||||
(vi: n)
|
(vi: n)
|
||||||
(emacs: n)
|
(emacs: n)
|
||||||
@ -1997,12 +2210,51 @@ Repeat the last search.
|
|||||||
.Xc
|
.Xc
|
||||||
Search backwards for the specified text.
|
Search backwards for the specified text.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic search-backward-incremental
|
||||||
|
.Ar text
|
||||||
|
(emacs: C-r)
|
||||||
|
.Xc
|
||||||
|
Search backwards incrementally for the specified text.
|
||||||
|
Is expected to be used with the
|
||||||
|
.Fl i
|
||||||
|
flag to the
|
||||||
|
.Ic command-prompt
|
||||||
|
command.
|
||||||
|
.It Xo
|
||||||
|
.Ic search-backward-text
|
||||||
|
.Ar text
|
||||||
|
.Xc
|
||||||
|
Search backwards for the specified plain text.
|
||||||
|
.It Xo
|
||||||
.Ic search-forward
|
.Ic search-forward
|
||||||
.Ar text
|
.Ar text
|
||||||
(vi: /)
|
(vi: /)
|
||||||
.Xc
|
.Xc
|
||||||
Search forward for the specified text.
|
Search forward for the specified text.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic search-forward-incremental
|
||||||
|
.Ar text
|
||||||
|
(emacs: C-s)
|
||||||
|
.Xc
|
||||||
|
Search forward incrementally for the specified text.
|
||||||
|
Is expected to be used with the
|
||||||
|
.Fl i
|
||||||
|
flag to the
|
||||||
|
.Ic command-prompt
|
||||||
|
command.
|
||||||
|
.It Xo
|
||||||
|
.Ic search-forward-text
|
||||||
|
.Ar text
|
||||||
|
.Xc
|
||||||
|
Search forward for the specified plain text.
|
||||||
|
.It Xo
|
||||||
|
.Ic search-reverse
|
||||||
|
(vi: N)
|
||||||
|
(emacs: N)
|
||||||
|
.Xc
|
||||||
|
Repeat the last search in the reverse direction (forward becomes backward and
|
||||||
|
backward becomes forward).
|
||||||
|
.It Xo
|
||||||
.Ic select-line
|
.Ic select-line
|
||||||
(vi: V)
|
(vi: V)
|
||||||
.Xc
|
.Xc
|
||||||
@ -2012,12 +2264,28 @@ Select the current line.
|
|||||||
.Xc
|
.Xc
|
||||||
Select the current word.
|
Select the current word.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic set-mark
|
||||||
|
(vi: X)
|
||||||
|
(emacs: X)
|
||||||
|
.Xc
|
||||||
|
Mark the current line.
|
||||||
|
.It Xo
|
||||||
.Ic start-of-line
|
.Ic start-of-line
|
||||||
(vi: 0)
|
(vi: 0)
|
||||||
(emacs: C-a)
|
(emacs: C-a)
|
||||||
.Xc
|
.Xc
|
||||||
Move the cursor to the start of the line.
|
Move the cursor to the start of the line.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic stop-selection
|
||||||
|
.Xc
|
||||||
|
Stop selecting without clearing the current selection.
|
||||||
|
.It Xo
|
||||||
|
.Ic toggle-position
|
||||||
|
(vi: P)
|
||||||
|
(emacs: P)
|
||||||
|
.Xc
|
||||||
|
Toggle the visibility of the position indicator in the top right.
|
||||||
|
.It Xo
|
||||||
.Ic top-line
|
.Ic top-line
|
||||||
(vi: H)
|
(vi: H)
|
||||||
(emacs: M-R)
|
(emacs: M-R)
|
||||||
@ -3797,7 +4065,8 @@ the sequence for only keys which lack an existing well-known representation; or
|
|||||||
mode 2 which changes the sequence for all keys.
|
mode 2 which changes the sequence for all keys.
|
||||||
When set to
|
When set to
|
||||||
.Ic always ,
|
.Ic always ,
|
||||||
mode 1 output is forced and the program cannot change it.
|
modes 1 and 2 can still be requested by applications, but mode 1 will be forced
|
||||||
|
instead of the standard mode.
|
||||||
When set to
|
When set to
|
||||||
.Ic off ,
|
.Ic off ,
|
||||||
this feature is disabled and only standard keys are reported.
|
this feature is disabled and only standard keys are reported.
|
||||||
@ -4093,10 +4362,12 @@ If
|
|||||||
(the default), leave the session orphaned.
|
(the default), leave the session orphaned.
|
||||||
If
|
If
|
||||||
.Ic keep-last ,
|
.Ic keep-last ,
|
||||||
destroy the session only if it is in a group and has other sessions in that group.
|
destroy the session only if it is in a group and has other sessions in that
|
||||||
|
group.
|
||||||
If
|
If
|
||||||
.Ic keep-group ,
|
.Ic keep-group ,
|
||||||
destroy the session unless it is in a group and is the only session in that group.
|
destroy the session unless it is in a group and is the only session in that
|
||||||
|
group.
|
||||||
.It Xo Ic detach-on-destroy
|
.It Xo Ic detach-on-destroy
|
||||||
.Op Ic off | on | no-detached | previous | next
|
.Op Ic off | on | no-detached | previous | next
|
||||||
.Xc
|
.Xc
|
||||||
@ -4230,6 +4501,13 @@ Like
|
|||||||
.Ic prefix2
|
.Ic prefix2
|
||||||
can be set to
|
can be set to
|
||||||
.Ql None .
|
.Ql None .
|
||||||
|
.It Ic prefix-timeout Ar time
|
||||||
|
Set the time in milliseconds for which
|
||||||
|
.Nm
|
||||||
|
waits after
|
||||||
|
.Ic prefix
|
||||||
|
is input before dismissing it.
|
||||||
|
Can be set to zero to disable any timeout.
|
||||||
.It Xo Ic renumber-windows
|
.It Xo Ic renumber-windows
|
||||||
.Op Ic on | off
|
.Op Ic on | off
|
||||||
.Xc
|
.Xc
|
||||||
|
1
tmux.h
1
tmux.h
@ -2016,6 +2016,7 @@ RB_HEAD(key_bindings, key_binding);
|
|||||||
|
|
||||||
struct key_table {
|
struct key_table {
|
||||||
const char *name;
|
const char *name;
|
||||||
|
struct timeval activity_time;
|
||||||
struct key_bindings key_bindings;
|
struct key_bindings key_bindings;
|
||||||
struct key_bindings default_key_bindings;
|
struct key_bindings default_key_bindings;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user