13

私が取り組んでいるプロジェクトでは、ユーザーコマンドを受け入れ、上矢印で履歴を提供できるようにしようとしています。私はこのプロジェクトに依存関係がないようにすることを目指しており、プロジェクトをコンパイルするためだけにreadline開発ファイルもインストールするように人々に要求する必要はありません。単純な機能のみを提供するGNUReadlineの単純なドロップイン置換を知っている人はいますか?

4

6 に答える 6

24

エディットライン。BSD スタイルのライセンスを持っています。

編集: editline の古いバージョンは非常に単純でした。これは、2 つの C ファイルと1 つのヘッダーだけで、合計約 1500 行のコードを含むものです。私たちは何年もそれを使用してきました。

于 2009-12-10T19:57:19.093 に答える
17

見つけました。Redis で有名な antirezは、はるかに単純な代替手段であるlinenoiseを考え出しました。

于 2010-03-22T02:04:00.737 に答える
7

ほとんどのシステムには readline がインストールされているので、それほど大きな問題ではないと思います。

第二に、GNU Readline ライブラリのドロップイン代替品はないと思います。あなたはそれに固執する必要があります。:(

編集 2016 年 5 月 11 日: この回答は古くなっています。私が行う編集は、他のより正しい回答からほぼ完全に借用することになります。要約:最新の readline の代替手段については、 linenoiseeditlineを参照してください。

于 2009-12-10T19:49:06.143 に答える
3

BusyBox には readline に似たコマンドライン編集コードが含まれていますが、はるかに小さくシンプルで、UTF-8 を完全にサポートしています。独立したライブラリにするのはおそらく簡単でしょう。

于 2011-02-12T21:47:25.970 に答える
3

editlineライブラリは、さらに別の代替手段です。READMEから:

editline ライブラリは、1992 年に Simmule Turner と Rich Salz によって作成されました。当時、彼らは「C News のような」著作権でコードを配布することを選択しました。詳細については、ファイル LICENSE を参照してください。

[...]

このバージョンの editline ライブラリは、Minix3 ソースから分岐したものです。多くの場合、元の comp.sources.unix 投稿に基づいている他の既知のバージョンは次のとおりです。

各フォークからの最も興味深いパッチとバグ修正がここにマージされました。

于 2012-08-26T16:34:46.233 に答える
1

editline(libedit)は、マルチバイト文字をまだサポートしていません。

私はDanLoewenherzにも同意します。readlineライブラリは広く普及しています。たとえば、ほとんどのLinuxディストリビューションはbashにreadlineを同梱しています。ほとんどのPythonディストリビューションには、readlineも付属しています。プロジェクトにreadlineのようなライブラリが必要な場合は、GNU readlineライブラリを使用することをお勧めします。これは一般的な選択肢であり、ユーザーはすでにOSにインストールしている可能性があるためです。

于 2009-12-19T13:15:17.150 に答える