どのようにしてプロセスとの間で前後の通信を作りますか

私は、シェルプロセスとインターフェースするemacsモードを書いています。シェルプロセスは高価です。これは一度やりたいことを意味し、必要に応じてemacsからコマンドを送ることを意味します。 emacsを使って外部プログラムとの非同期の双方向通信をどうやって行うことが可能ですか?

私が理解しているところでは、コイントモードは私が必要とするものに近いですが、それは、ユーザーがpythonシェルとのインタフェースのような入力を提供するメジャーモードでのみ使用されるようです。

私は実際のプロセスとシェルをエンドユーザーから隠しておきたいです。

Is there a reasonably easy way to do this? Or some resources on the subject>

皆さん、ありがとうございました

4

1 答え

comintモードで使用される機能は start-process ですから、まずはそれから始めたいと思うかもしれません。 process-send-string でプロセスにデータを送信し、プロセスの出力はEmacsによって自動的に読み込まれ、プロセスフィルタに渡されます。これは set-プロセスフィルタ

主な難点は、プロセスから受け取るチャンクのサイズを選択しないようにすることです。そのため、プロセスフィルタ関数は、通常、受信した内容の一部のみを処理し、後で残りの部分を保持したいと考えます。出力を一度に1行処理する)。

4
追加された