【问题标题】:Trying to use xTerm to send command or control key combinations尝试使用 xTerm 发送命令或控制组合键
【发布时间】:2023-03-04 09:28:01
【问题描述】:

在使用 xTermJS 时,我尝试使用 UI 来发送命令,而不是仅仅输入......这是项目......

所以,我有时需要发送组合键。在 Mac 上运行,我需要发送 "control+X" aka ^X

但是,这似乎是不可能的?至少没有人发表过。是否可以?我可以使用 ASCII 和十六进制字符来发送、返回、移位、箭头键等。我可以这样做“控制”和/或“控制+X”组合吗?

【问题讨论】:

    标签: terminal xtermjs


    【解决方案1】:

    十进制 0 到 31 的 Ascii 表示都是转义码,表示 Ctrl 键和另一个字符的组合。使用的 ascii 字符取自 ascii 图表(十进制 64 到 94)下方的 4 行(加 64)。例如

    十进制 64 是 ascii @ => 十进制 00 是 ascii Ctrl + @
    十进制 65 是 ascii A => 十进制 01 是 ascii Ctrl + A
    十进制 66 是 ascii B => 十进制 02 是 ascii Ctrl + B

    下图显示了前 128 个值的二进制、八进制、十进制、十六进制和转义码/ascii 表示。或者你可以修改this spreadsheet,制作自己的ascii图表。

    【讨论】:

      【解决方案2】:

      好的,就在我发布这个问题时,我找到了答案。 我在这里找到它:https://mw.lojban.org/papri/List_of_ASCII_letterals#ASCII_control_code_chart

      ASCII control code chart 下,在^X 下,其ASCII 码为18,我将其作为\x18 发送到xTermJs。这立即解决了我的问题。

      似乎连这些字符组合都被定义为 1 个 ASCII 字符,而不是 2 个一起使用。在这种情况下,我的 Control+X 字符实际上称为"Cancel" 字符。

      【讨论】:

      • 欢迎来到 ASCII 控制字符的世界 ;) 请注意,在这个游戏中,对于许多基本击键,还有一种间接方式 - termios[CC] 设置。虽然我还没有看到任何正常的进程与这些混淆(除了一些禁用一些 shell),但仍然通过这些定义了诸如进程控制之类的东西(例如 SIGINT,通常映射到 Ctrl-C 或 0x03)。理论上,一个进程可以将其更改为任何 ASCII 字符 - 所以为了安全起见,评估 termios[CC] 也是很好的。
      猜你喜欢
      • 1970-01-01
      • 2018-06-03
      • 1970-01-01
      • 1970-01-01
      • 2013-08-22
      • 2013-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多