【发布时间】:2013-09-10 14:20:24
【问题描述】:
我想对光标键做出反应;为此,我想找出当前终端以规范方式使用的转义序列。大多数解决方案在源代码中只包含字符串"\e[A" 等。我知道如果目标系统使用不同的转义序列,这不是可移植的。
我尝试使用tput 来获得正确的转义序列,但tput kcud1 返回的转义序列与用于向下箭头键的转义序列不同:它返回"\eOB",但键结果为"\e[B"。但是没有给 tput 的 capname 导致这个字符串;我能做到的最好的是 tput cud ,它返回 "\e[%p1%dB" ,从中剥离所有参数最终将成为所需的字符串。但是去掉参数也不好听。
找出箭头键在按下时会产生的正确转义序列的规范方法是什么?我会很高兴使用tput 或curses 或什至完全不同的方法的解决方案。
【问题讨论】:
-
看看(“ncurses”,invisible-island.net/ncurses/#download_ncurses)!
标签: shell terminal arrow-keys ansi-escape