gpt4 book ai didi

zsh - 是否可以在 zsh 中绑定(bind)键 Shift+Enter?

转载 作者:行者123 更新时间:2023-12-04 21:32:05 25 4
gpt4 key购买 nike

我开始在 macOS Sierra 上使用 zsh。我想要以下键映射:

  • 输入 => 接受行
  • Shift-Enter => 接受并按住

  • 但是,我似乎无法区分两者。我只能输入 Enter 和 Esc-Enter,但不能输入 Shift-Enter:
    bindkey "^M"   accept-line     # Enter
    bindkey "^[^M" accept-and-hold # Esc-Enter
    bindkey "????" accept-and-hold # Shift-Enter

    是否可以检测和处理 Shift-Enter?

    最佳答案

    zsh (以及其他 shell)不作用于键绑定(bind),而是作用于从终端接收到的键序列。将按键和组合转换为按键序列是终端的责任。您可以通过按 Ctr+v 然后按组合键来检索组合键的键序列,例如Shift+Enter。

    默认情况下,Enter 和 Shift+Enter(以及 Ctrl+v 和 Ctrl+Shift+m​​)都生成相同的键序列 ^M (至少在最常见的终端仿真器中)。

    幸运的是,一些终端仿真器允许配置发送的键序列。例如,iTerm2 允许您设置发送转义序列的自定义键绑定(bind)(在 Profile > Keys 中),您应该能够在那里定义 Shift+Enter 的序列,例如[[SE然后可以在 zsh 中进行适当的设置: bindkey '^[[[SE' 'accept-and-hold' . (不幸的是,我目前无法使用 Mac,因此无法对此进行测试)。

    关于zsh - 是否可以在 zsh 中绑定(bind)键 Shift+Enter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43291381/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com