我想设置ctrl-enter
接受 zsh 自动建议。我一直在尝试,bindkey "\C-\r" autosuggest-accept
但这最终被理解为只需按 Enter 键(因此覆盖accept-line
使其很难做任何事情:))。我正在使用kitty
and withkitty
可以通过ble.sh
bash 中的自动建议来做到这一点,所以我希望它也可以在 zsh 中实现。
答案1
\C-\r
传统上,这不是终端土地上的事物,因为它不是有效的ASCII 控制字符。因此,在大多数终端中,除非另有配置,否则按下CtrlEnter输出相同Enter(甚至什么都不输出)。
ble.sh
然而,却把凯蒂置于一个特殊的 XTerm 模式可以实现传统上不会产生(不同)输出的修饰键组合。我不知道是否存在ble.sh
Zsh 的等效项,但编写一个是可行的。简而言之,这样的脚本(或插件,如果你愿意的话)需要执行以下操作:
- 为在此特殊模式下产生不同输出的所有现有键绑定添加新的键绑定。
- 每当Zsh 行编辑器 (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