我想对光标键做出反应;为此,我想找出当前终端以规范方式使用的转义序列。大多数解决方案"\e[A"
在源代码中只包含字符串等。我知道如果目标系统使用不同的转义序列,这不是可移植的。
我尝试使用tput
来获得正确的转义序列,但tput kcud1
返回的转义序列与用于向下箭头键的转义序列不同:它返回"\eOB"
但键结果为"\e[B"
. 但是没有给 tput 的 capname 导致这个字符串;我能管理的最好的方法是 tput cud ,它返回 "\e[%p1%dB" ,从中剥离所有参数最终将成为所需的字符串。但是,剥离参数听起来也不是很好。
找出箭头键在按下时会产生的正确转义序列的规范方法是什么?tput
我会对使用甚至curses
完全不同的方法的解决方案感到高兴。