私は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 削除値を設定します。どちらの場合も、結果は次に適用されます。
TERMCAP
xterm によって設定された変数。また見てくださいttyモードオーバーライドできるリソースです。デフォルトは「False」です。
しかし、xterm
行動を一貫したものにすることはttyModes
効果的です。変更は、stty
システムに予想される内容だけを伝えることを覚えておいてください。あなたは変更することができます戻る矢印(バックスペースキー)使用するキー矢印キーの確認リソース:
かどうかを指定戻る矢印バックスペース(8)または削除(127)文字を送信するキー。これは次のとおりです。
DECBKM
制御順序。 「true」値はバックスペースキーを指定します。デフォルトは「true」です。この動作を切り替えるには、Ctrlキーを押します。