在我正在处理的项目中,我正在尝试让它接受用户命令并使用向上箭头提供历史记录。我的目标是保持这个项目没有依赖,我不想要求人们也只是为了编译我的项目而安装readline开发文件。有没有人知道GNU Readline的简单替代品,只提供简单的功能?
答案 0 :(得分:23)
Editline。它有BSD风格的许可证。
编辑:旧版本的editline非常简单。这是一个just two C files and a header,总共约1500行代码。我们多年来一直在使用它。
答案 1 :(得分:14)
答案 2 :(得分:8)
大多数系统都安装了readline,所以我不认为这是一个太大的问题。
其次,我认为GNU Readline库没有任何替代品。你将不得不坚持下去。 :(
编辑5/11/2016:这个答案已经过时了,我所做的任何编辑几乎都会从其他更正确的答案中借用。摘要:有关现代readline备选方案,请参阅linenoise和editline。
答案 3 :(得分:2)
BusyBox包含类似于readline的命令行编辑代码,但更小更简单,完全支持UTF-8 。将它变成一个独立的库可能很容易。
答案 4 :(得分:2)
编辑线库是由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
每个分支中最有趣的补丁和错误修复已合并到这里。
答案 5 :(得分:1)
editline(libedit)尚不支持多字节字符。
我也同意Dan Loewenherz,readline库广泛传播。例如,大多数Linux发行版都使用readline进行bash。大多数python发行版也带有readline。如果您的项目需要类似readline的库,那么使用GNU readline库是个好主意,因为它是一个受欢迎的选择,用户可能已经在操作系统上安装了它。