summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorMarc Cornellà <marc.cornella@live.com>2019-05-19 18:22:23 +0200
committerGitHub <noreply@github.com>2019-05-19 18:22:23 +0200
commit5f7666e20b411ac4b71844d72945f9e122909dbc (patch)
tree4b52423605668af86c8aa458e8366c64ec174377 /plugins
parent5aa62461d91546ce1fd5dcc6531569d0e6e6f17f (diff)
downloadzsh-5f7666e20b411ac4b71844d72945f9e122909dbc.tar.gz
zsh-5f7666e20b411ac4b71844d72945f9e122909dbc.tar.bz2
zsh-5f7666e20b411ac4b71844d72945f9e122909dbc.zip
vi-mode: reset KEYMAP on accept-line (#7818)
Fixes #7797
Diffstat (limited to 'plugins')
-rw-r--r--plugins/vi-mode/vi-mode.plugin.zsh13
1 files changed, 12 insertions, 1 deletions
diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh
index a82e41439..c91ba05ba 100644
--- a/plugins/vi-mode/vi-mode.plugin.zsh
+++ b/plugins/vi-mode/vi-mode.plugin.zsh
@@ -8,13 +8,24 @@ function zle-keymap-select() {
}
zle -N zle-keymap-select
-zle -N edit-command-line
+
+function vi-accept-line() {
+ VI_KEYMAP=main
+ zle accept-line
+}
+
+zle -N vi-accept-line
bindkey -v
+# use custom accept-line widget to update $VI_KEYMAP
+bindkey -M vicmd '^J' vi-accept-line
+bindkey -M vicmd '^M' vi-accept-line
+
# allow v to edit the command line (standard behaviour)
autoload -Uz edit-command-line
+zle -N edit-command-line
bindkey -M vicmd 'v' edit-command-line
# allow ctrl-p, ctrl-n for navigate history (standard behaviour)