【问题标题】:How to bind the 'Enter key' in Bash readline?如何在 Bash readline 中绑定“Enter 键”?
【发布时间】:2013-11-22 17:55:51
【问题描述】:

所以我昨天学会了如何使用绑定。

通过在终端中键入 Ctrl+v 后跟一个键,我得到一个表示该键的原始字符。例如:Ctrl+v 后跟 Esc 返回^[

我的问题是,如何绑定“输入键”。 Enter 键返回 ^M 但当我输入命令时

bind '"\e^M":"foobar"'

按回车键不会导致在我的终端中输入 foobar。

【问题讨论】:

    标签: bash keyboard-shortcuts


    【解决方案1】:
    bind '"\e^M":"foobar"'
    

    绑定 Escape-Enter,而不是 Enter。你只是想要

    bind '"^M":"foobar"'
    

    ^M 必须是实际控制字符,而不是^M。更容易打字的是

    bind '"\C-M":"foobar"'
    

    【讨论】:

    • 嘿,谢谢 Chepner,我想知道为什么 ^M 不起作用。另外,我想知道在哪里可以找到有关 \C 和 \e 以及任何其他转义序列字符的更多信息。
    • 请参阅 bash 手册页中的 Readline 表示法。看起来“C-M”就足够了;我不确定 "\C-M" 是否是一个可接受的替代方案,或者 "\C" 是否只是被 bash 视为转义的 "C",它被视为 "C"。
    【解决方案2】:
    $ alias ^M='echo foobar'
    $ ^M
    foobar
    

    【讨论】:

      猜你喜欢
      • 2016-12-19
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 2014-03-23
      • 2017-09-11
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      相关资源
      最近更新 更多