1

stty raw -echoTcl ターミナル プログラムで使用します。私が望むのは、Tab. 残りのキー押下イベントについては、カーソルを左側に移動してカーソルのある場所にテキストを挿入したり、プログラムを終了するCtrl+など、rlwrap またはその他のデフォルト処理プログラムに委譲したいと考えています。Cそれを行う方法はありますか?

4

3 に答える 3

0

残念ながら、ターミナル処理システムは、それを簡単にする方法では機能しません。しかし、それは不可能ではありません。私が考えることができる最も単純なメカニズム (実際、その考えにうんざりしない唯一のメカニズム) は、Expect 拡張機能のinteractコマンドのより高度な機能のいくつかを使用することです。

特に、Expect によって作成されinteractたプログラムを外部の世界に効果的に接続しますが、拡張された動作を可能にするパターンを追加することもできます。spawn

package require Expect

spawn /your/program yourarguments...

interact {
    "\t" {
        # Do something special here as we've got a Tab
        send "special special special\r"
    }
}

生成されたプロセスで rlwrap を使用できます。

spawn rlwrap /your/program yourarguments...
于 2017-01-17T09:50:18.513 に答える