浏览代码

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
Jim Hester 12 年之前
父节点
当前提交
b609aa0e6c
共有 1 个文件被更改,包括 5 次插入0 次删除
  1. 5 0
      plugins/vi-mode/vi-mode.plugin.zsh

+ 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