8

dunnet.el ゲーム、エリザ ドクター、または IELM モードを想像してみてください。これは、回答を評価し、メイン バッファーで新しい質問を促し、elisp ルールに従っていくつかのアクションを実行することです。

対話型アシスタントのようなものを作成したいのですが、(対話型) のように (Mx を実行しないで) ミニバッファーからプロンプトを出さないでください...一種の REPL ループが必要です。したがって、テキストの会話/冒険のように、作業バッファー (メイン画面) で対話を取得する方法について質問しますが、この方法で私の非機能化された関数を呼び出します。

したがって、カスタム REPL を作成するには、基本的な elisp スケルトンが必要です。目標は、自然言語でアシスタントを作成し、アンサーを解析し、ルールに従っていくつかのアクションを実行することです。

お時間をいただきありがとうございます。

スティーブ、

4

3 に答える 3

5

emacs に含まれる elisp repl である ielm を調べてください。

于 2011-01-16T16:54:11.910 に答える
2

バッファ内で何が起こるかによって、適切な再バインディングでメジャーモードを与えることができますreturnか? (この回答は Lisp-Interaction-Mode の Cj に漠然とインスパイアされています)

于 2011-01-16T16:14:59.207 に答える
0

Cp Cn、Up Down Arrows/page up/down などのバッファ内の移動に使用するすべてのキーを にバインドする必要があります(lambda ())。カーソル位置が行頭または行末にある場合、Cb および Cf (左右矢印) の機能を変更します。そして、現在の行を最後からオプションのプロンプトまで読み取る関数に Return キーをバインドします (正規表現を使用してプロンプトを削除できます) その文字列で必要なことを行い、バッファーの次の行に移動して結果を出力します。

于 2011-01-23T22:12:30.097 に答える