问题标签 [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 投票
4 回答
1353 浏览

bash - vi 或 emacs 的 Bash 用法

从编程的角度来看,当您将 bash shell 设置为使用 vi 或 emacs 时

或者

这里到底发生了什么?我一直在读一本书,它声称 bash shell 使用这些编辑器中的任何一个作为 shell 本身的输入,但我认为它可能使用了 readline。

0 投票
3 回答
1965 浏览

ruby-on-rails - 在 Ubuntu Lucid Lynx 上安装 Heroku 已损坏

我正在尝试在某个地方免费托管一个 Ruby on Rails 应用程序,而 Heroku 看起来像是我的最后一个资源。它应该可以在 Linux 上运行,并且 gem 安装时没有错误,但是每当我运行任何 Heroku 命令时,它都会吐出几个错误,所有错误都是连接的,并且谈论失败的“要求”。我在代码中查看了它,它说:

这就对了。

我尝试安装所有我能找到和想到的 libreadline 变体,但没有任何区别。这里有什么想法吗?

0 投票
3 回答
1602 浏览

python - python行编辑telnet服务器

我正在用 python 创建一个服务器(它在做什么是无关紧要的),但我希望它接受 telnet 连接并提供具有行编辑功能(tabcompletion、emacs/vi-mode 等)和每个会话历史记录的命令行界面. 我已经成功创建了 telnet 会话,禁用了线路模式并启用了服务器回显。

我最初的想法是使用 readline,但 python readline 模块似乎只适用于 stdin 上的单个会话;并检查似乎是它工作方式的底层 readline 库。

但是,我想做的是为每个客户端创建一个实例(如果您愿意,可以将其称为状态),并在接收到字符(字节)时提供给状态。一旦生成了完整的行,它将把它传递给可以解析它的服务器。

所以我的问题是,如果有一个库可以处理这种事情,即使是一个 c 库就足够了。

编辑:澄清一下,我已经有了一个功能齐全的服务器,但我希望 telnet 接口作为重新配置、获取信息等的附加功能。

0 投票
3 回答
6548 浏览

c++ - 在 Windows 下静态链接、正确工作的 readline 库?

我们正在开发一个依赖于 GNU readline 库的 C++ 软件包,我们通常使用 gcc 构建(至少需要版本 4)。现在我们想把它移植到 Windows 上,获得一个静态链接的版本,我们可以重新分发它而不需要用户编译。

我尝试了几种方法:

  • 使用 Cygwin 构建(不使用提供的 readline 结合-mno-cygwin或 MinGW 编译器),
  • 使用 MinGW 和 GnuWin32 中的 readline 构建(未解决的对 stat64 的依赖,我无法解决),
  • 使用 MinGW 构建并构建 readline 和所需的 pdcurses 从源代码(最有希望的方法是使用静态二进制文件!但获得的交互式 shell 行为不正确,例如退格键未可视化)。

有什么想法可以让我们使用其中一种方法吗?

0 投票
4 回答
1505 浏览

c - 如何在使用 GNU readline 从 stdin 读取时将消息输出到另一个线程上的 stdout 而不会弄乱输入?

抱歉标题太长了。我正在用 C 语言开发一个网络程序,它可以在标准输出上显示从网络接收到的消息,并通过 GNU readline 库在标准输入上接受用户输入。问题是,当用户通过 readline 在主线程上键入命令时,会收到一条网络消息并输出到 stdout,这将产生如下内容:

设想:

输入:1234567890
网络消息:Hello
当用户刚刚输入“7”时,网络消息到达

终端上的实际输出:

输入> 1234567
你好890_

有没有办法得到这样的输出?

你好
输入> 1234567890_

ps _ 是光标。

提前致谢!

0 投票
2 回答
1487 浏览

perl - 需要使用 T:R:G mod 的 Perl system() 命令的进度指示器

我想要一个获取 Perl 输出的进度指示器

对于从 make 命令输出到 STDOUT 的每一行,我想输出一个点作为进度指示器。不幸的是,我使用的是 Term::ReadLine::Gnu Perl mod。

如何在 make 命令运行时重定向 STDOUT 以捕获和计算行数?

0 投票
1 回答
688 浏览

ruby - Ruby 行编辑 telnet 服务器

我正在用 Ruby 实现一个小型 telnet 服务器。我目前面临的问题是我想添加 readline 支持,以便我可以支持制表符完成和命令行历史记录。我查看了Readline库,但似乎它只能通过标准输入工作。有没有办法在 Ruby 中做到这一点(我注意到Python的解决方案)?

0 投票
3 回答
7130 浏览

macos - 如何链接到 GNU readline 库而不是 macosx 中的 libedit?

尝试在 macosx 上构建 Term-Readline-Gnu,抱怨 libedit 并建议使用 gnu readline 失败。我怎么做?

这是我尝试过的尝试之一:

首先,我静态构建了 GNU libreadline v6.2,但没有安装它——以确保我没有搞砸同名的系统版本:

./configure --prefix=/Users/Fred/Downloads/tmp1

制作

使安装静态

然后尝试构建 Term_Readline-Gnu-1.20

cmc:Term-ReadLine-Gnu-1.20 cmc$ perl Makefile.PL --includedir=/Users/cmc/Downloads/tmp1/include --libdir=/Users/Fred/Downloads/tmp1/lib

找到`/usr/lib/libtermcap.dylib'。

gcc-4.2 -I/Users/Fred/Downloads/tmp1/include -arch x86_64 -arch i386 -arch ppc -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -I/usr/local/include -DHAVE_STRING_H rlver.c -o rlver -L/Users/Fred/Downloads/tmp1/lib -arch x86_64 -arch i386 -arch ppc -L/usr/local/lib -lreadline -ltermcap

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!

您使用的 libreadline 是 libedit 库。使用 GNU Readline 库。

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!

克里斯

0 投票
3 回答
3750 浏览

c - C 中的制表符补全(readline 库)

我一直在努力让标签完成工作。我很困惑,不知道该怎么做。请您看一下我的代码并告诉我如何修复它。

顺便说一下,rl_attempted_completion_function自从我从在线教程中获得它以来,我就使用了它,但它是一个 C++ 函数。我可以使用什么功能来替换它而不进行更改。

谢谢

0 投票
12 回答
17412 浏览

ruby - 如何在 Ubuntu 11.10 上使用 RVM 在 IRB 中获得 Readline 支持

我已经尝试了我能想到的一切来让它工作,但无济于事,所以在这里我请求有关如何调试的建议。

首先,运行 Ubuntu 11.10

安装的rvm:

使用 apt-get 安装 readline:

检查 readline 安装:

安装 ruby​​,支持 readline?

这是rvm版本:

让我们试试 ruby​​ shell:

不,好吧,如果它不能与 ubuntu 的 readline 版本一起使用???让我们试试 rvm 自己的 readline 版本:

好的,这里有一个错误,让我们看一下:

正如预期的那样,irb 不适用于 readline:

我是否安装了所有 rvm 要求?是的,请看:

就这样继续下去,继续,继续,继续......

所以总而言之,如果一些明亮的火花可以建议我如何调试这种情况并解决,我将非常感激。

ps - 是的,我已经“谷歌”这个问题死了....