如何在 zsh 5.0.8 中以 zle vi 可视模式正确绑定`<esc>`

How to correctly bind `<esc>` in zle vi visual mode in zsh 5.0.8

在可视模式下,<ESC> zle vi 模式的标准行为是什么都不做。但我希望在 vi-mode 可视模式下按 <esc> 的操作将键盘映射切换到 vi-normal 模式 (vicmd)。就像在标准 vi 中一样。

我试过这个:

bindkey -M visual '\e' vi-cmd-mode

但是没有用。

This是我使用的vi模式配置文件

我怎样才能达到预期的效果?

  • zsh 5.0.8:

    nin-deactivate-region() {
       REGION_ACTIVE=0
    }
    zle -N nin-deactivate-region
    bindkey -M visual '\e' nin-deactivate-region
    
  • 来自 zsh 5.1 你已经有了一个 deactivate-region 小部件所以它会更容易:

    bindkey -M visual '\e' deactivate-region