【发布时间】:2019-03-10 16:52:52
【问题描述】:
我正在尝试从 termcap 数据库中获取表示向上箭头键的字符串。使用以下内容:
char *buffer = malloc(2048);
tgetent(buffer, getenv("TERM")); //TERM = xterm-256color
char *key_up = tgetstr("ku", &buffer); // gives me \EOA
ku通过向上箭头键发送的输入字符串。
问题是在程序中键入时,向上的箭头键实际上是作为\E[A 传递的。它也像这样传递给cat。我尝试了不同的终端仿真器和 shell,它们都以相同的方式通过了。
所以我决定硬编码这个键值而不是使用ku 值,它可以工作,但感觉不对。
我在这里遗漏了什么吗?如何以编程方式获得正确的 ku 值?
【问题讨论】:
-
您的 TERM 似乎设置不正确?
-
我正在使用 KDE + Konsole 并且我的期限设置为
xterm-256color并且 my 终端确实产生了\E[A -
... ku 返回
\E0A...