例如,假设我有字符串“Hinge” - 我希望能够将光标移动到开头,按 del 删除“H”,然后插入“B”,将光标前面的所有内容向前推,然后创建单词“Binge”,而不是覆盖默认行为“i”。我可以使用标准的 addch() 函数来做到这一点吗?
此外,即使我可以让它在屏幕上正确打印,让它与缓冲区相对应似乎是一个过于复杂的问题。这似乎是一项常见的任务,但我想不出一种非 hacky 的方式来做到这一点。
这是我当前如何处理基本输入的示例。
if (isprint(key)) {
if (ctx->pos != sizeof(ctx->line)-1) {
mvwaddch(self->window, y, x, key);
ctx->line[ctx->pos++] = key;
ctx->line[ctx->pos] = '\0';
}
}