fbence Asked: 2022-07-13 12:43:34 +0800 CST2022-07-13 12:43:34 +0800 CST 2022-07-13 12:43:34 +0800 CST zsh bindkey ctrl-enter to autosuggest-accept using kitty 772 我想设置ctrl-enter接受 zsh 自动建议。我一直在尝试bindkey "\C-\r" autosuggest-accept,但这最终被理解为只是按回车键(因此压倒一切accept-line,使它很难做任何事情:))。我正在使用kitty并且kitty可以通过 bash 中的自动建议来做到这一点ble.sh,所以我希望在 zsh 中也可以。 zsh kitty 1 个回答 Voted Best Answer Marlon Richert 2022-07-14T02:11:51+08:002022-07-14T02:11:51+08:00 \C-\r传统上不是终端领域的东西,因为它不是有效的ASCII 控制字符。因此,在大多数终端中,除非另有配置,否则按下CtrlEnter输出相同Enter(甚至根本没有)。 ble.sh但是,将 Kitty 置于一种特殊的 XTerm 模式,该模式可以组合传统上不会产生(不同)输出的修饰键。我不知道 Zsh 是否存在等价物ble.sh,但写一个是可行的。简而言之,这就是这样一个脚本(或插件,如果你愿意的话)需要做的事情: 为在此特殊模式下产生不同输出的所有现有键绑定添加新键绑定。 每当Zsh Line Editor (ZLE)初始化时,启用此模式: autoload -Uz add-zle-hook-widget modify-other-keys-extended() { print -n '\e[>4;2m' } add-zle-hook-widget line-init \ modify-other-keys-extended 每当 ZLE 完成时,禁用此模式: modify-other-keys-off() { print -n '\e[>4;0m' } add-zle-hook-widget line-finish \ modify-other-keys-off
\C-\r
传统上不是终端领域的东西,因为它不是有效的ASCII 控制字符。因此,在大多数终端中,除非另有配置,否则按下CtrlEnter输出相同Enter(甚至根本没有)。ble.sh
但是,将 Kitty 置于一种特殊的 XTerm 模式,该模式可以组合传统上不会产生(不同)输出的修饰键。我不知道 Zsh 是否存在等价物ble.sh
,但写一个是可行的。简而言之,这就是这样一个脚本(或插件,如果你愿意的话)需要做的事情: