标签: editline

在尝试使用已安装的开发人员工具进行编译时,未找到/正在使用editline/history.h和editline/readline.h

我正在编写关于构建自己的LISP的教程(http://www.buildyourownlisp.com/chapter4_interactive_prompt),出于某种原因,当我尝试编译时,我得到了这个:

REPL.c:4:10: fatal error: 'editline/readline.h' file not found
#include <editline/history.h>
^
1 error generated.
Run Code Online (Sandbox Code Playgroud)

我已经安装了osx开发人员工具,brew正在显示readline已安装,当我尝试brew install editline时它不知道该怎么做.

这是我的代码:

  1 #include <stdio.h>
  2 #include <stdlib.h>
  3 #include <editline/readline.h>
  4 #include <editline/history.h>
  5 
  6 int main(int argc, char** argv) {
  7      
  8   /* version/exit info */
  9   puts("Edward Version 0.0.1");
 10   puts("Press Ctrl+c to Exit\n");
 11          
 12   /* endless loop for main REPL */
 13   while (1) { 
 14     /* output prompt and read line */
 15     char* input = …
Run Code Online (Sandbox Code Playgroud)

c macos readline editline

31
推荐指数
2
解决办法
7559
查看次数

使用GNU Readline; 如何在同一个程序中添加ncurses?

标题比我的实际目标更具体:

我有一个命令行程序,它使用GNU Readline,主要用于命令历史记录(即使用向上箭头检索以前的命令)和其他一些细节.现在,程序的输出中间散布着用户的输入,有时候输出是正常的,但输出是异步的(它是通过网络连接来响应输入命令),有时会变得烦人(例如,如果用户输出行时)正在输入新的输入).

我想为这个程序添加一个功能:输出的单独"窗口".我想过为此使用ncurses.但是从ncurses FAQ中可以看出,这两个库并不容易一起使用.

我可能会考虑使用Editlinetecla而不是Readline,但我不清楚其中任何一个是否能解决我的问题.我还考虑使用除ncurses之外的其他东西,包括提供两种功能的库(文本模式窗口和命令历史记录),但我不知道什么是最好的.

哦,对彩色文字的支持可能会得到奖励积分.我怀疑我可能能够做到这一点与Readline库,所以也许这是一个单独的问题,但如果我的问题的解决方案也可以轻松一点颜色添加到输出,那就更好了.

我正在使用Ubuntu Hardy(Linux 2.6).

ncurses readline editline

22
推荐指数
3
解决办法
6711
查看次数

如何着色editline应用程序的提示

我试图着色由libedit驱动的应用程序的提示,但我的颜色根本没有显示.我在这里做错了什么想法?

#include <iostream>
#include <histedit.h>

char* prompt(EditLine *e)
{
  static char p[] = "\1\033[36m\1:::\1\033[0m\1 ";
  return p;
}

int main(int argc, char* argv[])
{
  EditLine* el = el_init(argv[0], stdin, stdout, stderr);
  el_set(el, EL_PROMPT_ESC, &prompt, '\1');
  el_set(el, EL_EDITOR, "vi");

  while (1)
  {
    int count;
    char const* line = el_gets(el, &count);

    if (count > 0)
      std::cout << line;
  }

  el_end(el);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译

clang++ editline.cc -ledit && ./a.out
Run Code Online (Sandbox Code Playgroud)

并且显示不幸的是只有未着色的提示:

:::     
Run Code Online (Sandbox Code Playgroud)

c c++ prompt colors editline

6
推荐指数
1
解决办法
550
查看次数

标签 统计

editline ×3

c ×2

readline ×2

c++ ×1

colors ×1

macos ×1

ncurses ×1

prompt ×1