在我正在进行的一个项目中,我试图让它接受用户命令并使用向上箭头提供历史记录。我的目标是让这个项目没有依赖关系,我不想要求人们也安装 readline 开发文件来编译我的项目。有谁知道仅提供简单功能的 GNU Readline 的简单替代品?
6 回答
编辑线。它具有 BSD 风格的许可证。
编辑:旧版本的编辑线非常简单。这里只有两个 C 文件和一个 header,总共大约 1500 行代码。我们已经使用它多年了。
我找到了一个。Redis 的 antirez 提出了linenoise,一个更简单的替代方案。
BusyBox 包含类似于 readline 的命令行编辑代码,但更小更简单,完全支持 UTF-8。把它变成一个独立的库可能很容易。
编辑线库由 Simmule Turner 和 Rich Salz 早在 1992 年创建。当时他们选择在“C News-like”版权下分发代码,请参阅文件 LICENSE 了解详细信息。
[...]
此版本的编辑线库是 Minix3 源代码的一个分支。其他已知版本,通常基于原始 comp.sources.unix 发布:
- Debian libeditline,http ://packages.qa.debian.org/e/editline.html
- 海姆达尔,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 库是一个好主意,因为它是一种流行的选择,并且用户可能已经将它安装在操作系统上。