问题标签 [editline]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
403 浏览

python - OS X 上的 Python/editline:£ 符号似乎绑定到 ed-prev-word

在 Mac OS XI 上,无法在 Python 交互式 shell 中输入英镑符号 (£)。

当我在 Python 交互式 shell 中键入 shift-3 时,我似乎调用了前一个单词函数,即光标将移动到该行上键入的最后一个“单词”(即以空格分隔的项目)的开头。当我回到 bash shell 时,键入 shift-3 只会产生一个 £,正如预期的那样。

这个版本的 Python 显然使用 editline 作为它的交互式 shell,而不是 readline。我猜测默认的编辑行键绑定之一将 shift-3(或当我键入 shift-3 时看到的任何编辑行)绑定到 ed-prev-word 命令。

我在 ~/.editrc 文件中尝试了一些方法来删除此绑定,但它们没有任何效果:

  • bind -r £
  • bind -r \243
  • bind -r \156

另一个导致总线错误:

  • bind £ \243

有任何想法吗?

0 投票
6 回答
8080 浏览

readline - 使用 GNU 阅读线;如何在同一程序中添加 ncurses?

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

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

我想为这个程序添加一个功能:一个单独的“窗口”用于输出。我考虑过为此使用ncurses。但是从ncurses FAQ看来,这两个库并不容易一起使用。

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

哦,对彩色文本的支持可能会获得奖励积分。我怀疑我可以用 Readline 做到这一点,所以也许这是一个单独的问题,但如果我的问题的解决方案也可以很容易地为输出添加一些颜色,那就更好了。

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

0 投票
1 回答
512 浏览

c++ - 具有非阻塞输入的编辑线

我在我的程序中使用 editline 库,用于在 shell 中输入用户命令。但是由于 shell,程序有一个 gui 界面,所以我需要在单独的线程中运行 editline 的 readline() 函数,因为它会阻塞直到按下 Enter。有没有办法在不阻塞的情况下使用 readline() 函数,所以我可以避免单独使用线程?

0 投票
3 回答
687 浏览

c++ - 如何为编辑行应用程序的提示着色

我正在尝试为由libedit提供支持的应用程序的提示着色,但我根本没有显示颜色。有什么想法我在这里做错了吗?

编译

不幸的是,只显示了以下无色提示:

0 投票
8 回答
9837 浏览

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

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

我已经安装了 macOS 开发人员工具,并且 brew 显示已安装 readline,当我尝试 brew install editline 时它​​不知道该怎么做。

这是我的代码:

这显然是非常基本的,但我真的很想让这个项目滚动,所以我希望我能解决这个问题。这是我用来编译的:

0 投票
1 回答
351 浏览

c - GTK 可以与类似库的 readline 一起使用吗?

图形 GTK 程序是否也有可能像GNU readlineeditlinelinenoise提供的那样具有“命令行界面” ?

如何处理阻塞 gtk_main() 调用,并阻止这些库中的循环步骤?

0 投票
1 回答
261 浏览

c - 编辑线错误

我是 C 语言的新手,每当我使用 command 编译我的 C 代码时,都会不断收到此错误cc prompt.c。我收到此错误:

架构 x86_64 的未定义符号:

“_add_history”,引用自:

“_readline”,引用自:

ld:未找到架构 x86_64 的符号

clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

这是我的代码:

如果有帮助,我正在运行 OSX 10.10.3 的 Macbook Air 上编写这个程序。

我刚开始学习C语言,所以不要评判我这个问题是否真的很简单,当我搜索它时没有结果。

任何帮助将不胜感激。谢谢!

0 投票
0 回答
168 浏览

c - 在终端中显示可删除的字符(使用 libedit/editline 或 readline)

我目前正在将 libedit 用于“readline”功能,到目前为止它工作得非常好,但我想在提示后显示可由用户删除的字符(空格)。类似于 IPython:

蟒蛇

如您所见,自动添加了 4 个额外的字符(空格),我可以通过按退格键将其删除,直到出现提示...:

我想用 libedit/editline 来模拟这种行为,如果没有办法做到这一点(例如使用 curses 或 libedit 使用的底层终端功能),我会切换到 readline。

这怎么可能,最好使用 libedit/editline 或 readline。

编辑:我尝试修改rl_line_buffer,这并没有修改显示,只有我从中得到的值readline

0 投票
0 回答
176 浏览

c - 在 libedit/editline 中有一种方便的方法来进行多行输入

使用 libedit/ editline,并尝试找出一种进行多行输入/编辑的好方法。目标是 SQL 客户端,其中查询通常跨越多行并以;.

我可以调用el_gets并处理每一行输入,当我看到终止时停止;。我什至可以将它们连接起来并将它们作为单个条目存储在 el_history 中——当使用箭头滚动历史记录时,它将正确访问它们。

但是,当输入命令并开始新行后,我不能再使用箭头向上移动和编辑上一行。例如:

那时,我希望能够使用向上箭头向上移动并编辑已在第一行输入的文本。这可能吗?一个人会怎么做?我认为el_gets在这种情况下使用是不正确的,因为它会从编辑行缓冲中删除该行,但我没有看到可以工作的替代 API。

想法?

0 投票
1 回答
460 浏览

c - 无法在 OpenBSD 上使用编辑行编译

我认为我必须安装 editline (libedit?) 库,但我在哪里可以为 OpenBSD 获得它?代码在 PC-BSD 上编译得很好,但是在 OpenBSD 上我得到了这个错误

它是未找到的编辑线库。我尝试用谷歌搜索在哪里可以找到 OpenBSD,但没有找到。你能帮助我吗?我使用的标题是

生成文件

这是有问题的代码

如果我运行,locate editline那么它会找到并更改 Makefile 并得到一个新错误undefined reference to tgetnum,根据 google 似乎我必须与ncurses库链接。现在它编译了。新Makefile的是: