13

在我正在进行的一个项目中,我试图让它接受用户命令并使用向上箭头提供历史记录。我的目标是让这个项目没有依赖关系,我不想要求人们也安装 readline 开发文件来编译我的项目。有谁知道仅提供简单功能的 GNU Readline 的简单替代品?

4

6 回答 6

24

编辑线。它具有 BSD 风格的许可证。

编辑:旧版本的编辑线非常简单。这里只有两个 C 文件和一个 header,总共大约 1500 行代码。我们已经使用它多年了。

于 2009-12-10T19:57:19.093 回答
17

我找到了一个。Redis 的 antirez 提出了linenoise,一个更简单的替代方案。

于 2010-03-22T02:04:00.737 回答
7

大多数系统都安装了 readline,所以我不认为这是一个太大的问题。

其次,我认为 GNU Readline 库没有任何替代品。你将不得不坚持下去。:(

编辑 2016 年 5 月 11 日:此答案已过时,我所做的任何编辑都将几乎完全借鉴其他更正确的答案。摘要:请参阅linenoiseeditline以了解现代 readline 替代方案。

于 2009-12-10T19:49:06.143 回答
3

BusyBox 包含类似于 readline 的命令行编辑代码,但更小更简单,完全支持 UTF-8。把它变成一个独立的库可能很容易。

于 2011-02-12T21:47:25.970 回答
3

编辑线库是另一种选择。从自述文件

编辑线库由 Simmule Turner 和 Rich Salz 早在 1992 年创建。当时他们选择在“C News-like”版权下分发代码,请参阅文件 LICENSE 了解详细信息。

[...]

此版本的编辑线库是 Minix3 源代码的一个分支。其他已知版本,通常基于原始 comp.sources.unix 发布:

每个分支中最有趣的补丁和错误修复已在此处合并。

于 2012-08-26T16:34:46.233 回答
1

editline(libedit) 还不支持多字节字符。

我也同意 Dan Loewenherz 的观点,readline 库分布广泛。例如,大多数 linux 发行版都附带带有 readline 的 bash。大多数 python 发行版还附带 readline。如果您的项目需要类似 readline 的库,那么使用 GNU readline 库是一个好主意,因为它是一种流行的选择,并且用户可能已经将它安装在操作系统上。

于 2009-12-19T13:15:17.150 回答