如何制作具有箭头键功能的交互式提示



我正在制作一种解释语言。我使用一个交互式提示符,在其中输入要求值的表达式(REPL)。我想知道,我如何实现标准的提示行为?比如按上下方向键来浏览命令历史,按左右方向键来移动文本光标,而不是打印^[[D^[[C^[[A^[[B]代码。我只是不知道如何抓住他们,或者任何控制字符。

我在Linux上。我是否需要使用护士或一些外部库,或者可以用内置函数完成?这与我的语言无关,但是像这样使用提示,没有导航,这让我很抓狂。

下面是一个示例C程序,它允许您使用readline(必须使用-lncurses -lreadline编译):

#include <stdio.h>
#include <curses.h>
#include <readline/readline.h>
#include <readline/history.h>
int main (void) {
    char *input = readline("$ ");
    printf("You typed `%s'!n", input);
    return 0;
}

基本上,它模仿元键的命令行行为,如home/end和方向键。但这一切都取决于你是否正确配置了输入

相关内容

  • 没有找到相关文章

最新更新