我正在考虑在C#中编写一个控制台应用程序,我希望将历史,完成和命令行编辑功能纳入GNU readline(但不一定非常广泛!)
解决方法
您可能想要查看Miguel de Icaza的
getline.cs(博客文章中的链接已损坏,现在可以找到代码
here).根据您实际需要的readline的功能,它可能足以满足您的需要.
好的是,它全部包含在一个(因此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". }