我一直在尝试自学 ncurses,到目前为止我很喜欢它。但是,我正在尝试编写一个小型文本编辑器,例如 pico 或 nano。到目前为止,我已经把它设置得很好。我创建了一个函数来映射键。无论我做什么,我都无法得到回应KEY_ENTER
。每当我按下它时,它就会转到我当前所在行的开头。我试过使用 raw(); 并使用 13 而不是KEY_ENTER
没有运气。所有其他键都按预期响应。我会很感激任何建议。我一直盯着这个试图让它永远工作。谢谢!
#include <stdlib.h>
#include <ncurses.h>
// gcc keymaps.c -lncurses -o keymaps
int main(){
int ch;
initscr();
cbreak();
noecho();
keypad(stdscr,TRUE);
while (ch = getch()) {
switch(ch){
case KEY_UP:
addstr("Up\n");
break;
case KEY_LEFT:
addstr("Left\n");
break;
case KEY_RIGHT:
addstr("Right\n");
break;
case KEY_BACKSPACE:
addstr("Backspace\n");
break;
case KEY_ENTER:
addstr("You pressed Enter\n");
default:
printw ("%u\n", ch);
break;
}
}
}