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-fifo
(nc
はいインターネット猫、ネットワークのスイス軍用ナイフ)。別のウィンドウで以下を実行しますrlwrap tee mud-input-fifo
(巻き戻すすべてのライン入力プログラムのラインバージョンを提供します。
Emacsもこれを行うことができます。しかし、最終的に以前に行われたEmacsでMUDクライアントを実装することになります(mu.el
、mud.el
、mudel.el
、eMUD,...).
答え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クライアントも必要です。