我正在尝试使用 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/