是否有一个简单的替代Readline?

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

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

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

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

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

编辑:旧版本的editline非常简单。 这里只有两个C文件和一个标题 ,总共大约1500行代码。 我们多年来一直在使用它。

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

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

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

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

[…]

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

  • Debian libeditline, http: //packages.qa.debian.org/e/editline.html
  • Heimdal, http: //www.h5l.org
  • 节日演讲工具, http://festvox.org/festival/
  • Steve Tell的编辑补丁, http://www.cs.unc.edu/~tell/dist.html

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

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

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