轻量级GNU readline替代品

时间:2013-07-31 23:17:01

标签: c linux shell user-input readline

我正在寻找一个GNU readline替代品。它有很多功能,但只有几个对我有用,如下所述 -

我正在处理交互式命令提示应用程序(显示提示并接受下一个要运行的用户命令)。我想为提示实现一些编辑和历史记录功能。因此,当用户按下UP键时,它应显示最后一次运行命令。此外,如果用户需要编辑任何拼写错误或命令开关等,用户应该能够使用箭头键进行导航。

在Windows上已经存在类似的内容,如果您使用fgetsscanf在cmd提示符下获取输入,则它已经保留了历史记录并且还允许您进行编辑。

Linux上是否有一个很好的选择?

2 个答案:

答案 0 :(得分:13)

我认为这是一个令人钦佩的目标:-)

或许Linenoiselibedit/editlinetecla符合条款?

在那些人中,libedit是最广泛使用的 - 例如postgreqsql客户端shell和各种用于Kerberos和ntp的BSD实用程序(尽管对于上游源,它可能不是用于编译的默认行编辑库,因为在Linux上广泛使用libreadline)。有一些略有不同的libedit / editline版本,如果您阅读其中一些参考文献并进行进一步研究,您会看到。

干杯,祝你的项目好运。

答案 1 :(得分:1)

replxx,这是BSD许可的readline替代品。 它适用于Linux,BSD,Solaris和Windows。 它支持您希望从交互式控制台程序获得的功能,即:

  • 行编辑
  • 历史
  • 语法突出显示
  • 提示
  • UTF-8
  • 用户定义的键绑定(支持(shift / ctrl)F1-F12)
  • 多线程打印