问题标签 [libreadline]

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 投票
0 回答
243 浏览

c++ - 具有并发输出/输入可能性的 C++ 控制台

我正在尝试使用“交互式控制台”(可能是错误的术语)创建一个简单的项目,我基本上可以将输入和输出同时安全地放在屏幕上。我一直在尝试使用 GNU Readline 程序,因为我认为它可以帮助我实现我的目标,但到目前为止我还没有运气。

下面的示例程序:

我想要的输出是

请注意,我不需要使用 readline 库,但在这个示例程序中我正在尝试它。

在 C/C++ 中这样的事情可能吗?我已经看到它在其他编程语言(如 Java)中完成......所以我想它必须在 C 或 C++ 中是可能的。

有没有支持这个的库?我已经在谷歌上搜索了 2 个小时左右,但没有找到可以做我上面描述的事情的运气。

谢谢。

0 投票
1 回答
145 浏览

python - python REPL中没有行历史记录/自动完成功能

我在 Debian 机器上从源代码下载并编译了 Python 3.7,但是缺少“readline”功能(查看行历史记录、自动完成选项卡)。我有python3.5使用 安装的软件包apt,并且该功能在那里工作。我已经安装了libreadline7readline-common包(这些是在我编译 Python 3.7 之前安装的)。我猜我需要在某处编辑/创建一个配置文件,或者我需要在编译期间使用一个标志?我能找到的所有答案都导致“安装readline软件包”,这对我来说已经是这样了。

./configure | grep "readline"Python编译期间的输出:

0 投票
0 回答
240 浏览

c++ - 如何修复从 readline 输入到输出流

我正在用 C++ 制作一个项目,我的任务是用 readline.h 库中功能更强大的 readline() 函数替换 std::getline,因为它包含更多功能,并且总体上会更有用。但是,我正在执行的程序对其他“in-X”文件进行多次测试,并生成“out-X”文件并检查输出结果以进行测试。

测试基本上是这样的

我遇到的问题是 readline() 函数似乎将它从输入读取的行打印到输出文件,所以基本上我生成的所有“out-X”文件都包含所有输入加上预期的结果,这是非常麻烦。

我已经尝试了许多 rl_redisplay() 组合并使用 rl_delete_text() 没有解决方案。我也尝试过使用终端管理功能,例如 rl_prep_terminal(1) 到原始模式和 rl_deprep_terminal() ,但似乎没有任何效果。我也无法尝试 rl_tty_set_echoing() 因为我的程序似乎无法在库中找到它。

我试图尽可能地减少这个问题并想出了这个简化的代码

这非常简单,打印 readline() 的提示不是输出预期的问题,而是打印读取的“buf”。

基本上用in文件

我希望输出

但我明白了

包含 EOF 的最后一个“提示>”是我可以解决或使用的东西,但我不能打印第 3 行和第 5 行。

0 投票
1 回答
196 浏览

c++ - 为什么 GNU Readline 会弄乱 ANSI 颜色代码?

我正在尝试使用带有彩色提示的 GNU Readline。归结为一个最小的测试用例,我的readline()调用如下所示:

我希望看到这样的提示(想象一下它是蓝色的):

但相反,我看到:

我在文档中阅读了有关提示扩展的信息,并认为那里可能会发生一些奇怪的事情。但是扩展的提示很好,这可以按预期工作:

这发生在 Gnome Terminal 和 Xterm 中。我在 Ubuntu 18.04 上使用 libreadline 7。我一生都无法弄清楚这里发生了什么,而且似乎没有人在网上遇到这个问题。

0 投票
0 回答
43 浏览

python - parse_and_bind() 用于其他键

是否可以使用“?” 除了python中的tab键之外的tab-complete?python允许将key与parse_and_bind('tab:complete')一起使用,但我没有看到任何绑定其他键的选项,例如'?';

谢谢

0 投票
0 回答
362 浏览

android - clang-8:错误:链接器命令失败,退出代码为 1

我正在使用 C 程序中的 GNU readline 库在 Android 5 (Lollipop) 的 Termux 中编写一个简单的 shell 程序。我在编译以下代码时收到链接器错误。相同的代码在 Android 9' Termux 中运行良好。我也验证了 readline Dev 包。

编译为: $ cc -lreadline rl.c

这是链接器错误

0 投票
2 回答
88 浏览

c - 使用 Readline 按下制表符时禁止打印新提示

在 C 中使用带有 Readline 库的自动完成时,在键入tab两次键时会重新打印提示:

我想通过在第一行打印下面的建议来抑制在第 3 行重新打印提示,如下所示:

我希望光标回到有提示的第一行的末尾。

编译gcc -Wall -O0 -ggdb -fno-builtin rline.c -o rline -lreadline -ltermcap

这是一个代码示例:

该程序只接受view FILE_NAME查看文件内容和quit退出程序的命令。该示例是此处找到的示例程序的简化版本。

0 投票
1 回答
2086 浏览

r - R 在 Ubuntu 20.04 上缺少 libreadline.so.7,不再工作

由于我安装了最新版本的 Ubuntu (20.04),所以 R (4.02) 无法正常工作。如果我尝试从终端启动 R,我会收到以下消息:

在网上查了一下,发现我有Libreadline6和8,但没有7,所以我手动安装了。

所以现在我确实有 R 需要的版本,但是当我尝试运行它时,我有完全相同的错误消息。我什至不知道在什么方向寻找解决方案,我认为这不是 R 的问题,而是 Ubuntu ......知道可能是什么问题吗?谢谢!

0 投票
1 回答
13 浏览

python-3.x - python3 gnu redline减号处理

我正在编写一个自定义的 gnu readline 完成程序,并且在处理减号时发现了一个奇怪的怪癖。

如果我的输入是“har”,则使用文本“har”调用完成程序,但是如果我的输入是“hard-r”,则使用文本“r”调用完成程序。

我想知道我做错了什么?

0 投票
1 回答
50 浏览

gnu - GNU Readline:如何设置输入字符串的初始内容

同事,告诉我如何在readline()中设置输入行的初始值?

让我们假设我可以以很高的概率猜测用户将输入什么值。虽然,不同值的可能性仍然存在。

因此,我希望从一开始的输入看起来像

输入用户名:约翰

不是

输入用户名:

是否可以在 readline() 函数的字符串缓冲区中输入一个初始值,以便在运行时将其输出?然后,用户要么更改它,要么直接按 Enter,如果他同意的话。

提前感谢您的回复。