【问题标题】:Detect automatically the escape sequence for a key combination自动检测组合键的转义序列
【发布时间】:2015-12-31 13:26:04
【问题描述】:

是否可以自动检测组合键的转义序列?

,即不是运行cat,然后手动按ctrl+rightctrl+left 以分别检测转义序列为^[[5C^[[5D,它可以自动化吗?在这种情况下,我们可以通过管道将 fn(ctrl+left) 或 fn(ctrl+right) 作为输入发送到 cat 并获取输出(第一次,当 ^[[5C^[[5D 未知时)直接。

fn(char a[]='ctrl+right') {..outputs the actual keypress signal for the input string a.. ;} | cat; fn=?

这个问题与我的另一个问题 https://stackoverflow.com/questions/34547008/reverse-map-the-keys-binding-value-to-the-key-combination 完全相反。

我要求它自动为开发人员在终端中设置键绑定的过程,这样他们就不需要手动运行所有可能的组合,就像我们现在必须做的那样 (as seen here)

【问题讨论】:

  • 我不明白这个问题。 cat 是您找出按键转义序列的方法。您是否在问如何将 words ctrl+right 转换为适当的键序列?
  • 是的。不是手动按 ctrl+left 进入键盘,有什么方法可以让我以编程方式发送它。如果可能的话,是否也可以用于所有键组合
  • 这里有什么意义?这不正是文档中 terminfo 选项的作用吗?

标签: shell terminal kernel key-bindings


【解决方案1】:

是否可以自动检测键的转义序列 组合?

由于 shell(与任何用户程序一样)无法洞察终端驱动程序,因此它无法预测驱动程序将使用组合键做什么。还要考虑使用某些终端,我们可以更改键盘的行为(例如,参见xmodmap)。自动检测并非普遍可行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-09
    • 1970-01-01
    相关资源
    最近更新 更多