about summary refs log tree commit diff
path: root/Src/Zle/zle_vi.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Zle/zle_vi.c')
-rw-r--r--Src/Zle/zle_vi.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/Src/Zle/zle_vi.c b/Src/Zle/zle_vi.c
index 68b1c9211..a7e8a70cc 100644
--- a/Src/Zle/zle_vi.c
+++ b/Src/Zle/zle_vi.c
@@ -167,6 +167,10 @@ getvirange(int wf)
 
     virangeflag = 1;
     wordflag = wf;
+    /* use operator-pending keymap if one exists */
+    Keymap km = openkeymap("viopp");
+    if (km)
+	selectlocalmap(km);
     /* Now we need to execute the movement command, to see where it *
      * actually goes.  virangeflag here indicates to the movement   *
      * function that it should place the cursor at the end of the   *
@@ -224,6 +228,7 @@ getvirange(int wf)
     if (virangeflag == -1)
 	INCPOS(pos);
     virangeflag = 0;
+    selectlocalmap(NULL);
 
     /* Get the range the right way round.  zlecs is placed at the *
      * start of the range, and pos (the return value of this   *