diff options
Diffstat (limited to 'Src/Zle/zle_main.c')
-rw-r--r-- | Src/Zle/zle_main.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Src/Zle/zle_main.c b/Src/Zle/zle_main.c index 8344c66be..d157e36c2 100644 --- a/Src/Zle/zle_main.c +++ b/Src/Zle/zle_main.c @@ -1067,6 +1067,7 @@ getrestchar(int inchar) void zlecore(void) { + Keymap km; #if !defined(HAVE_POLL) && defined(HAVE_SELECT) struct timeval tv; fd_set foofd; @@ -1088,8 +1089,10 @@ zlecore(void) statusline = NULL; vilinerange = 0; reselectkeymap(); - selectlocalmap(NULL); + selectlocalmap(invicmdmode() && region_active && (km = openkeymap("visual")) + ? km : NULL); bindk = getkeycmd(); + selectlocalmap(NULL); if (bindk) { if (!zlell && isfirstln && !(zlereadflags & ZLRF_IGNOREEOF) && lastchar == eofchar) { |