summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rw-r--r--Functions/Zle/vi-pipe11
2 files changed, 10 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 086298775..4fb827c71 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
2016-07-24 Oliver Kiddle <opk@zsh.org>
+ * 38936: Functions/Zle/vi-pipe: fix for option compatibility
+
* 38929: Doc/Zsh/contrib.yo, Functions/Zle/select-word-match:
new vim style text object using match-words-by-style mechanism
diff --git a/Functions/Zle/vi-pipe b/Functions/Zle/vi-pipe
index 2d2e29587..028f1e1ce 100644
--- a/Functions/Zle/vi-pipe
+++ b/Functions/Zle/vi-pipe
@@ -7,16 +7,21 @@
# autoload -Uz vi-pipe
# bindkey -a '!' vi-pipe
+setopt localoptions noksharrays
+
autoload -Uz read-from-minibuffer
local _save_cut="$CUTBUFFER" REPLY
-# Use the standard vi-delete to accept a vi motion.
-zle .vi-delete || return
+# force movement to default to line mode
+zle -U V
+# Use the standard vi-change to accept a vi motion.
+zle .vi-change || return
read-from-minibuffer "!"
+zle .vi-cmd-mode
local _save_cur=$CURSOR
# cut buffer contains the deleted text and can be modified
-CUTBUFFER="$(eval $REPLY <<<$CUTBUFFER)"
+CUTBUFFER=$(eval "$REPLY" <<<"$CUTBUFFER")
# put the modified text back in position.
if [[ CURSOR -eq 0 || $BUFFER[CURSOR] = $'\n' ]]; then