xterm を使用して、複数の Unices でバックスペースが一貫して動作するようにします。

xterm を使用して、複数の Unices でバックスペースが一貫して動作するようにします。

私は3つの異なるUnices(Linux、Solaris、AIX)を使用し、すべて同じホームディレクトリなどを使用している会社で働いています。彼らはすべてGNU coreutils(ありがとう!)を使用していますが、さまざまな問題を解決しようとしているのはまだ「面白い」です。私たちはそれらを実行して接続するので、ssh今は除外します)。

特に、Solaris でバックスペースキーを使用する際に問題があります。 Bashでは動作しますが、他のアプリケーション(特にreadlineベースのアプリケーション)では^ Hのみを印刷します。

stty erase ^H現在私のソリューション~/.profileと私の次のソリューションを使用しています~/.Xdefaults

*VT100.Translations: #override \
              <Key>BackSpace: string(0x08)\n

これはほとんどの場合うまくいくようですが、バックスペースキーをすべてのプラットフォームでデフォルト/優先されないキーに明示的に設定するので、理想的ではないかもしれません。特に、私はそれを使用しながら消去を^ Hに設定したことを思い出させるメッセージを頻繁に受け取りreset、まだ把握していない一連の状況で時々再び中断されます。おそらくこれはreadlineベースのアプリケーションで動作します。しかし、bashではそうではありません。resetすべてを正常に戻すには入力する必要があります。

このような問題により、私はこれが好ましい方法ではないかもしれないと信じていました。この状況に改善がある人はいますか?

ベストアンサー1

一部のアプリケーションは特定の削除文字を期待するようにハードコードされており、これに対してユーザーができることはありません。

しかしコメントの場合

TTYデバイスが期待するデフォルトのバックスペースキーと一致するようにxtermから送信されたバックスペースキーを取得するために実行する必要がある他の操作があるかどうか疑問に思います。

あなたできる設定pty初期クリアリソース:

「true」の場合、xterm は疑似端末の stty 削除値を使用します。 "false" の場合、xterm は、可能であれば、termcap エントリの kb 文字列を参照として使用して、自身の設定に一致するように stty 削除値を設定します。どちらの場合も、結果は次に適用されます。TERMCAPxterm によって設定された変数。

また見てくださいttyモードオーバーライドできるリソースです。デフォルトは「False」です。

しかし、xterm行動を一貫したものにすることはttyModes効果的です。変更は、sttyシステムに予想される内容だけを伝えることを覚えておいてください。あなたは変更することができます戻る矢印バックスペースキー)使用するキー矢印キーの確認リソース:

かどうかを指定戻る矢印バックスペース(8)または削除(127)文字を送信するキー。これは次のとおりです。DECBKM 制御順序。 「true」値はバックスペースキーを指定します。デフォルトは「true」です。この動作を切り替えるには、Ctrlキーを押します。

おすすめ記事