7

C# でコンソール アプリケーションを作成することを検討しており、履歴、補完、および GNU readline のようなコマンド ライン編集機能を組み込みたいと考えています (ただし、それほど広範囲である必要はありません!)。

このタイプの機能を提供する .net 用の既存のライブラリはありますか? 1 つのオプションは、相互運用サービスを使用して GNU readline を呼び出すことだと思います。しかし、ネイティブオプションはありますか?

4

4 に答える 4

9

Miguel de Icaza のgetline.csをチェックアウトすることをお勧めします(ブログ投稿のリンクは壊れています。コードはここにあります)。実際に必要な readline の機能によっては、それで十分な場合があります。

良い点は、すべてが 1 つの (したがって 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".
}
于 2010-05-03T08:15:20.607 に答える
2

RedLine のほとんどの機能をエミュレートすることを目的としたプロジェクトはDeveel ReadLineですが、維持されていないと言わざるを得ません。前回使用したときは、.NET と Mono の両方で非常にうまく機能しましたが、自動的に折りたたまれた行をキャンセルするときに小さなバグがありました。

于 2010-05-01T19:51:47.203 に答える
2

私が知っているのはMono-Readlineだけです。

これは、GNU Readline ライブラリへの .NET インターフェイスを提供します。ただし、バージョンは 0.0.1 のみであり、Mono ランタイムで実行されるのを見たことがありません。

ライセンスにも注意する必要があります...私の知る限り、GNU ReadlineライブラリにリンクするものはすべてGPLの下でリリースする必要があります。

于 2010-01-07T23:12:36.113 に答える