如何在 emacs 模式和 vi 模式之间进行 zsh 键绑定?
How to make zsh keybind between emacs mode and vi mode?
我想绑定一个键来切换emacs模式和vi模式,我使用oh-my-zsh插件(vi-mode)。
我试过了Is there a way to switch Bash or zsh from Emacs mode to vi mode with a keystroke?
我也尝试像
那样绑定密钥
bindkey '^[e' 'set -o emacs'
bindkey '^[v' 'set -o vi'
但这对我不起作用。
有什么方法可以切换 vi/emacs 或键绑定来设置键盘映射?
非常感谢!
bindkey
用于将键绑定到 ZLE 小部件而不是任何随机命令。所以你所猜测的是行不通的。您可以编写自定义 ZLE 小部件来切换键盘映射:
select-emacs() { set -o emacs }
zle -N select-emacs
bindkey '^[e' select-emacs
实际上,我不推荐这个。如果您想要混合方法,最好是 select emacs 模式,但将键绑定到 vi-cmd-mode
。实际上 Ctrl-X,Ctrl-V 是默认绑定到这个的。您甚至可以将转义键绑定到 vi-cmd-mode
- 其中 emacs 键序列涉及初始转义键,大部分可以用 Alt 代替。如果您习惯于使用实际的转义键键入它,您可以在 vi 命令模式下将其替换为自定义小部件。
我想绑定一个键来切换emacs模式和vi模式,我使用oh-my-zsh插件(vi-mode)。
我试过了Is there a way to switch Bash or zsh from Emacs mode to vi mode with a keystroke?
我也尝试像
那样绑定密钥
bindkey '^[e' 'set -o emacs'
bindkey '^[v' 'set -o vi'
但这对我不起作用。
有什么方法可以切换 vi/emacs 或键绑定来设置键盘映射?
非常感谢!
bindkey
用于将键绑定到 ZLE 小部件而不是任何随机命令。所以你所猜测的是行不通的。您可以编写自定义 ZLE 小部件来切换键盘映射:
select-emacs() { set -o emacs }
zle -N select-emacs
bindkey '^[e' select-emacs
实际上,我不推荐这个。如果您想要混合方法,最好是 select emacs 模式,但将键绑定到 vi-cmd-mode
。实际上 Ctrl-X,Ctrl-V 是默认绑定到这个的。您甚至可以将转义键绑定到 vi-cmd-mode
- 其中 emacs 键序列涉及初始转义键,大部分可以用 Alt 代替。如果您习惯于使用实际的转义键键入它,您可以在 vi 命令模式下将其替换为自定义小部件。