进一步阅读

进一步阅读

当我在终端中按下箭头时,光标会正确移动,但是当我用 C、C++ 或 Python 编写一个简单的应用程序时,它会写 ^[[A, ^[[B... 我用 Python 编写了一个简单的程序,所以你可以看到代码和结果。

在此输入图像描述

答案1

这是您从规范输入模式下的线路规则获得的终端输入解码级别。不是很多。

每个想要提供支持光标键盘、编辑键盘和功能键的可编辑命令行输入的应用程序都必须将终端切换到原始输入模式并解码 ECMA-48 输入流,考虑终端类型(以及各种状态机) RXVT、Linux KVT、SCO Console 和 Interix 的集合)。你的程序必须这样做。

有各种库可以执行此操作,从 GNU ReadLine 到 libtermkey/libtickit编辑行(又名 libedit)到 Z shell 中的 ZLE 和 Korn shell 的编辑库。

进一步阅读

相关内容