GNU画面から分離された入力ライン

GNU画面から分離された入力ライン

Screenを使用して入力内容をシェル全体から分離できますか?私の目標はステータスラインのようなものです。 1行の内容より多く入力するとステータス行が展開され、Enterキーを押すとステータスラインがシェルに「コミット済み」/「送信済み」になります。

私はMUSH / MUD / MUCK / MOOクライアントとして機能するためにScreen + Telnetの組み合わせを使用する簡単な設定を使用したいと思います。現在のTelnetを使用する場合の問題は、リモートサーバーから送信されたデータがカーソル位置に挿入されることです。

答え1

良いアーキテクチャは、画面を2つのウィンドウ(コマンド入力用のウィンドウとプログラム表示用のウィンドウ)に分けることです。これは基本的に通常のMUDクライアントが実行する操作です。画面上のsplit()コマンドを使用してC-a Sこれを行うことができます。

作る名前付きパイプ入力ウィンドウからTelnetウィンドウに入力を送信しますmkfifo mud-input-fifo。ウィンドウのいずれtelnet mud.example.com 1234 <mud-input-fifoかまたはnc mud.example.com 1234 <mud-input-fifoncはいインターネット猫、ネットワークのスイス軍用ナイフ)。別のウィンドウで以下を実行しますrlwrap tee mud-input-fifo巻き戻すすべてのライン入力プログラムのラインバージョンを提供します。

Emacsもこれを行うことができます。しかし、最終的に以前に行われたEmacsでMUDクライアントを実装することになります(mu.elmud.elmudel.eleMUD,...).

答え2

これはあなたが必要とするものではありませんが、多くのシステム(LinuxおよびほとんどのBSDを含む)で「rpnt」操作のキーを設定できます。

 stty rprnt '^R'

入力処理にttyドライバを使用するプログラムでこのキーを押すと(このような基本サービスに接続したときにTelnetがこれを行うようです)、入力行が次の行に再び表示されます。

その後、画面は次のようになります。

SERVER PROMPT> your text your text your text your textOUTPUT FROM SERVER^R
your text your text your text your text your text_

他にも、tinyfugueのような実際のMUDクライアントも必要です。

関連情報