c - TTY 键代码在 "bind -x"bash 回调中更改

标签 c bash readline tty

我正在尝试使用 bind -x 将交互式程序绑定(bind)到 bash 中的键。该程序在执行期间将终端设置为原始模式,并在退出时重置以前的设置。

当程序通过 bash 绑定(bind)运行时,某些键具有不同的代码。例如,向下箭头代码为 <Esc>OB而不是<Esc>[B 。我试图理解为什么并找到一个解决方案来获得“正常”代码。

我打印了用 tcgetattr 获得的标志,无论程序正常运行还是通过绑定(bind)运行,它们都是相同的。

最佳答案

这是因为终端设置为appcursor模式。

要取消设置,请将 "\x1B[?1l" 写入 tty。

关于c - TTY 键代码在 "bind -x"bash 回调中更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58947951/

相关文章:

python - 无法在嵌入 Python 的多线程 C 应用程序中终止多处理池

c - Axis 2/C : wrong element type or null node (om_element. c)

在Windows上编译C99兼容的.so

jython - 如何为 Jython 交互式解释器 session 停用 JLine?

node.js - 在 Node.js readline shell 中清除终端窗口

c - recv() 和 accept() 可以互换吗?

bash - 从文本文件打印所有回文

linux - BASH - 如何将输出 1 和 2 重定向到文件和屏幕?

bash - 如何通过 SSH 自动向多台服务器并行运行命令?

javascript - Node 'readline' 模块没有 'end' 事件 - 当没有更多行时我该怎么做?