我试图仿效用户,按这样的特殊键如<Left Arrow>
, <Backspace>
, <Delete>
等。 听说诅咒/ terminfo的可能帮助做,在终端无关的方式,但是当我尝试(与下面的代码)打印第一个字符串“文本”,然后emmit一个key_left
序列,我没有得到一个(与'|'
如光标) "tex|t"
而是"textD|"
。 为什么? 那怎么办正常吗?
#include <term.h>
#include <stdio.h>
static void putf(const char *name) {
putp(name);
fflush(stdout);
}
int main(int argc, char **argv) {
setupterm((char*)0, 1, (int*)0);
printf("text");
fflush(stdout);
putf(key_left);
// hang up until user input
fgetc(stdin);
return 0;
}
请注意,当我没关系使用诅咒,ncurses的是在我的使用情况是不可接受的。 另外请注意,我不想使用像initscr()
用空白的一个替代目前的终端屏幕,它不是一个期望的行为。