【发布时间】:2013-08-01 16:50:36
【问题描述】:
我正在寻找一个 GNU readline 替代品。它有很多功能,但只有几个对我有用,如下所述 -
我正在开发一个交互式命令提示应用程序(显示提示并接受下一个要运行的用户命令)。我想为提示实现一些编辑和历史功能。因此,当用户按下 UP 键时,它应该显示最后一次运行命令。此外,如果用户需要编辑任何错字或命令开关等,用户应该能够使用箭头键进行导航。
在 Windows 上已经存在类似的东西,如果您使用 fgets 或 scanf 在 cmd 提示符下获取输入,它已经保留了历史记录并允许您进行编辑。
在 linux 上有什么好的选择吗?
【问题讨论】:
-
认真的吗?这是某种 Visual Studio 插件吗?
-
@Duck 谢谢,我正在使用 C。我正在使用 VS,但不确定它是否是附加组件。
-
只使用 readline 有什么问题?它很容易集成到您的应用程序中。
-
@rici 似乎功能如此丰富,我想看看是否有更简单/轻量级的东西
-
rici 和 Duck 绝对正确。在 Linux 中,甚至终端窗口的大小也可能随时更改,因此库必须适当地重新绘制线条。此外,由于语言环境支持各种字符集和非打印和特殊序列,库必须能够计算 glyphs 而不是输入字节,以跟踪输入在屏幕上的时长,而 in-内存长度可能完全不同。我会选择 readline 库中的
readline(),因为它易于使用和用户友好。 (像我这样的用户在~/.inputrc中设置了自己的怪癖。)
标签: c linux shell user-input readline