vis
a vi-like editor based on Plan 9's structural regular expressions
git clone https://9o.is/git/vis.git
commit bb8ec4fdee6d169f1079f3ff7956b3ec83bc24e1 parent 13470668ab35fcce8bc3e2ddf68da8fd0a9a7a7a Author: Marc André Tanner <mat@brain-dump.org> Date: Tue, 22 Nov 2016 14:43:48 +0100 vis: add `:set escdelay nn` option Make the delay used to distinguish between an <Escape> key and other terminal escape sequences such as for the Meta key run time configurable. The value is given in miliseconds and defaults to 50ms. Notice that terminal multiplexers like dvtm or tmux might also induce some delay which has to be configured independently. Diffstat:
| M | README.md | | | 5 | +++++ |
| M | sam.c | | | 6 | ++++++ |
| M | vis-cmds.c | | | 6 | ++++++ |
3 files changed, 17 insertions(+), 0 deletions(-)
diff --git a/README.md b/README.md @@ -412,6 +412,11 @@ Operators can be forced to work line wise by specifying `V`. set shell to use for external commands (e.g. <, >, |) + escdelay number default 50 (50ms) + + miliseconds to wait to distinguish between an <Escape> key and other + terminal escape sequences + tabwidth [1-8] default 8 set display width of a tab and number of spaces to use if diff --git a/sam.c b/sam.c @@ -281,6 +281,7 @@ typedef struct { enum { OPTION_SHELL, + OPTION_ESCDELAY, OPTION_AUTOINDENT, OPTION_EXPANDTAB, OPTION_TABWIDTH, @@ -302,6 +303,11 @@ static const OptionDef options[] = { OPTION_TYPE_STRING, OPTION_FLAG_NONE, "Shell to use for external commands (default: $SHELL, /etc/passwd, /bin/sh)", }, + [OPTION_ESCDELAY] = { + { "escdelay" }, + OPTION_TYPE_NUMBER, OPTION_FLAG_NONE, + "Miliseconds to wait to distinguish <Escape> from terminal escape sequences", + }, [OPTION_AUTOINDENT] = { { "autoindent", "ai" }, OPTION_TYPE_BOOL, OPTION_FLAG_NONE, diff --git a/vis-cmds.c b/vis-cmds.c @@ -140,6 +140,12 @@ static bool cmd_set(Vis *vis, Win *win, Command *cmd, const char *argv[], Cursor vis->shell = shell; break; } + case OPTION_ESCDELAY: + { + TermKey *termkey = vis->ui->termkey_get(vis->ui); + termkey_set_waittime(termkey, arg.i); + break; + } case OPTION_EXPANDTAB: vis->expandtab = arg.b; break;