Readline有一个简单的替代方案吗?

时间:2009-12-10 19:44:48

标签: c readline

在我正在处理的项目中,我正在尝试让它接受用户命令并使用向上箭头提供历史记录。我的目标是保持这个项目没有依赖,我不想要求人们也只是为了编译我的项目而安装readline开发文件。有没有人知道GNU Readline的简单替代品,只提供简单的功能?

6 个答案:

答案 0 :(得分:23)

Editline。它有BSD风格的许可证。

编辑:旧版本的editline非常简单。这是一个just two C files and a header,总共约1500行代码。我们多年来一直在使用它。

答案 1 :(得分:14)

我发现了一个。 Redis成名的antirez提出linenoise,这是一个更简单的选择。

答案 2 :(得分:8)

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

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

编辑5/11/2016:这个答案已经过时了,我所做的任何编辑几乎都会从其他更正确的答案中借用。摘要:有关现代readline备选方案,请参阅linenoiseeditline

答案 3 :(得分:2)

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

答案 4 :(得分:2)

editline库是另一种选择。来自README

  

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

[...]

  

此版本的editline库是Minix3源代码的分支。其他   知道版本,通常基于原始的comp.sources.unix发布:

           

每个分支中最有趣的补丁和错误修复已合并到这里。

答案 5 :(得分:1)

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

我也同意Dan Loewenherz,readline库广泛传播。例如,大多数Linux发行版都使用readline进行bash。大多数python发行版也带有readline。如果您的项目需要类似readline的库,那么使用GNU readline库是个好主意,因为它是一个受欢迎的选择,用户可能已经在操作系统上安装了它。