是否存在类似于GNU readline的.Net库?
我正在考虑用C#编写一个控制台应用程序,我希望将历史,完成和命令行编辑function纳入GNU readline(但不一定非常广泛!)
是否有.net的现有库提供此类function? 我想一个选择是使用互操作服务来调用GNU readline。 但是有原生选择吗?
您可能想要查看Miguel de Icaza的getline.cs (博客文章中的链接已损坏,现在可以在此处找到代码)。 根据您实际需要的readline的function,它可能足以满足您的需要。
好的是,它全部包含在一个(因此getline.cs)文件和MIT X11许可。
使用它非常简单。
如果你想尝试,只需下载文件并编译它:
C:\> csc.exe /d:DEMO getline.cs C:\> getline.exe shell>
#ifdef DEMO
部分还显示了基本的REPL:
var le = new LineEditor("whatever"); string s; while ((s = le.Edit("my prompt> ", "")) != null) { // User input from command line / prompt now in "s". }
我唯一知道的是Mono-Readline 。
它为GNU Readline库提供了一个.NET接口 – 它有点原始,只有0.0.1版本,我只看到它在Mono运行时运行。
你也应该小心许可…… AFAIK任何链接GNU Readline库的东西都需要在GPL下发布。
一个旨在模仿RedLine大部分function的项目是Deveel ReadLine ,但我不得不说它没有得到维护。 上次我使用它在.NET和Mono上都运行得很好,虽然在取消自动折叠的线时有一个小错误。