about summary refs log tree commit diff
path: root/Src/Modules/ksh93.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Modules/ksh93.c')
-rw-r--r--Src/Modules/ksh93.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/Src/Modules/ksh93.c b/Src/Modules/ksh93.c
index 9dc75c93c..51999dd71 100644
--- a/Src/Modules/ksh93.c
+++ b/Src/Modules/ksh93.c
@@ -168,8 +168,9 @@ ksh93_wrapper(Eprog prog, FuncWrap w, char *name)
     if (zleactive) {
 	extern mod_import_variable char *curkeymapname;	/* XXX */
 	extern mod_import_variable char *varedarg;	/* XXX */
-	/* How to distinguish emacs bindings? */
-	if (curkeymapname && strcmp(curkeymapname, "main") == 0)
+	/* bindkey -v forces VIMODE so this test is as good as any */
+	if (curkeymapname && isset(VIMODE) &&
+	    strcmp(curkeymapname, "main") == 0)
 	    strcpy(sh_edmode, "\e");
 	else
 	    strcpy(sh_edmode, "");