Permalink
Browse files

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
  • Loading branch information...
1 parent 921d2f4 commit b609aa0e6c981f2039d777687cb01a84587f6edc @jimhester committed Sep 20, 2012
Showing with 5 additions and 0 deletions.
  1. +5 −0 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

1 comment on commit b609aa0

@jimhester Which issues does this help resolve? Can you help identify those github issues so that we can close those now?

Please sign in to comment.