More accurate vi(1) word navigation in copy mode and on the status line.

This changes the meaning of the word-separators option - setting it to
the empty string is equivalent to the previous behavior. From Will Noble
in GitHub issue 2693.
This commit is contained in:
nicm
2021-06-10 07:56:47 +00:00
parent 77bd6b9ec3
commit 77b1290698
7 changed files with 325 additions and 175 deletions

6
tmux.h
View File

@ -130,6 +130,7 @@ struct winlink;
#define KEYC_CURSOR 0x04000000000000ULL
#define KEYC_IMPLIED_META 0x08000000000000ULL
#define KEYC_BUILD_MODIFIERS 0x10000000000000ULL
#define KEYC_VI 0x20000000000000ULL
/* Masks for key bits. */
#define KEYC_MASK_MODIFIERS 0x00f00000000000ULL
@ -589,6 +590,9 @@ struct msg_write_close {
int stream;
};
/* Character classes. */
#define WHITESPACE " "
/* Mode keys. */
#define MODEKEY_EMACS 0
#define MODEKEY_VI 1
@ -2639,7 +2643,7 @@ void grid_reader_cursor_end_of_line(struct grid_reader *, int, int);
void grid_reader_cursor_next_word(struct grid_reader *, const char *);
void grid_reader_cursor_next_word_end(struct grid_reader *, const char *);
void grid_reader_cursor_previous_word(struct grid_reader *, const char *,
int);
int, int);
int grid_reader_cursor_jump(struct grid_reader *,
const struct utf8_data *);
int grid_reader_cursor_jump_back(struct grid_reader *,