stty設定が病理的に変更されました。

stty設定が病理的に変更されました。

私は新しいコンピュータをセットアップし、通常どおりxterm削除キーが機能するように設定を変更する必要がありました。 (Ctrl-H send ^H、backspace send ^?、delete send ^[[3~。もちろん客観的に正しい方法です。)デフォルトのxterm設定にはバグがありますが、少なくともxterm側ではこの設定ですべてがうまく機能します。

問題は何らかの理由でsttyxtermの設定が常にerase = ^Htmux^H^?

sttyなぜこのように構成されているのかわかりません。これはデフォルトではありません。sttyデフォルト値との違いを表示するために単独で入力すると行が表示されerase = ^H;、手動で入力するとstty erase ^?削除されます。 (これはstdinとtmuxの問題も解決します。)しかし、これを開始するすべての端末に入力するのは非常に退屈で、置くことができますが、.bashrcそれは正しい方法ではないようです。

sttyこの誤ったデフォルト設定ではない設定が使用される原因は何ですか?どうすれば止めることができますか?

答え1

これを行う方法はいくつかあります。おっしゃった方法が一つかもしれません。xterm別のプログラムを実行するプログラムです。他のプログラムをpty(通常はシェル)にラップし、ラップされたプログラムに提供する入力をチャネルにパイプします。擬似端末の特徴は、エミュレートされたデバイスにすぎないということです。したがって、xterm入力するデバイスの推測が必要です。もちろん、より具体的な情報も得ることができます。xtermさまざまな環境変数を尊重してください。より良い点はxresourcesです。

からman xterm

  • ttyModes(授業TtyModes
    • 端末設定キーワードとそのキーワードをバインドできる文字を含む文字列を指定します。許可されるキーワードは次のとおりです。ブルク暑いエブ廃止廃止2削除クリア2フラッシュ整数殺すNext辞める回転数スタート状態止める未決スイッチそしてベラス。制御文字は次のように指定できます。^char(例:^cまたは^u^?削除を示すために使用できます(127)。 undefを表現するために使用されます^-。 Xリソースのリテラルバックスラッシュが次の文字をエスケープするために\034使用します。^\
    • sttyxtermこれは、起動するたびに実行することなくデフォルトの端末設定を上書きするのに役立ちます。ただし、stty特定のホストのプログラムは他のキーワードを使用できます。 xtermテーブルは組み込みです。
    • ttyModesリソースが削除値を指定すると、ptyInitialEraseリソース設定が上書きされます。つまり、xterm 端末はその値と一致するように初期化されます。

関連情報