diff options
author | Jim Hester <james.f.hester@gmail.com> | 2012-09-20 08:03:09 -0400 |
---|---|---|
committer | Jim Hester <james.f.hester@gmail.com> | 2012-09-20 08:03:09 -0400 |
commit | b609aa0e6c981f2039d777687cb01a84587f6edc (patch) | |
tree | 7fc457d5217d6131b96e89823595ed7aec854815 /plugins/vi-mode | |
parent | 921d2f49ef01acce973980c0aa9c6ffbbd2fbd0b (diff) | |
download | zsh-b609aa0e6c981f2039d777687cb01a84587f6edc.tar.gz zsh-b609aa0e6c981f2039d777687cb01a84587f6edc.tar.bz2 zsh-b609aa0e6c981f2039d777687cb01a84587f6edc.zip |
Fix to restore bindings after switching to vi-mode
the vi-mode plugin destroys any bindings made before it is sourced due to the
'bindkey -v' call to switch to using vi-mode. This patch saves the bindings
before invoking 'bindkey -v' then rebinds them afterwards, this fixes a number
of outstanding issues due to people using vi-mode and having things in oh-my-zsh
break due to the bindings being destroyed
Diffstat (limited to 'plugins/vi-mode')
-rw-r--r-- | plugins/vi-mode/vi-mode.plugin.zsh | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index c47ab7211..d29eb1dda 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -5,7 +5,12 @@ function zle-line-init zle-keymap-select { zle -N zle-line-init zle -N zle-keymap-select +#changing mode clobbers the keybinds, so store the keybinds before and execute +#them after +binds=`bindkey -L` bindkey -v +for bind in ${(@f)binds}; do eval $bind; done +unset binds # if mode indicator wasn't setup by theme, define default if [[ "$MODE_INDICATOR" == "" ]]; then |