vi-mode: reset KEYMAP on accept-line (#7818)

Fixes #7797
This commit is contained in:
Marc Cornellà 2019-05-19 18:22:23 +02:00 committed by GitHub
parent 5aa62461d9
commit 5f7666e20b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 1 deletions

View File

@ -8,13 +8,24 @@ function zle-keymap-select() {
} }
zle -N 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 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) # allow v to edit the command line (standard behaviour)
autoload -Uz edit-command-line autoload -Uz edit-command-line
zle -N edit-command-line
bindkey -M vicmd 'v' edit-command-line bindkey -M vicmd 'v' edit-command-line
# allow ctrl-p, ctrl-n for navigate history (standard behaviour) # allow ctrl-p, ctrl-n for navigate history (standard behaviour)