我正在寻找一个GNU readline替代品。它有很多功能,但只有几个对我有用,如下所述 -
我正在处理交互式命令提示应用程序(显示提示并接受下一个要运行的用户命令)。我想为提示实现一些编辑和历史记录功能。因此,当用户按下UP键时,它应显示最后一次运行命令。此外,如果用户需要编辑任何拼写错误或命令开关等,用户应该能够使用箭头键进行导航。
在Windows上已经存在类似的内容,如果您使用fgets
或scanf
在cmd提示符下获取输入,则它已经保留了历史记录并且还允许您进行编辑。
Linux上是否有一个很好的选择?
答案 0 :(得分:13)
我认为这是一个令人钦佩的目标:-)
或许Linenoise,libedit/editline或tecla符合条款?
在那些人中,libedit是最广泛使用的 - 例如postgreqsql客户端shell和各种用于Kerberos和ntp
的BSD实用程序(尽管对于上游源,它可能不是用于编译的默认行编辑库,因为在Linux上广泛使用libreadline)。有一些略有不同的libedit / editline版本,如果您阅读其中一些参考文献并进行进一步研究,您会看到。
干杯,祝你的项目好运。
答案 1 :(得分:1)
有replxx,这是BSD许可的readline替代品。 它适用于Linux,BSD,Solaris和Windows。 它支持您希望从交互式控制台程序获得的功能,即: