SSH を使用する vim で Backspace の動作が変わるのはなぜですか?

SSH を使用する vim で Backspace の動作が変わるのはなぜですか?

ssh 経由で特定のマシンにアクセスすると、vim での Backspace の動作が変わります。文字を削除する代わりに、^? が表示されます。

問題は、このマシンがゲートウェイとして機能し、このゲートウェイの背後にあるマシンにアクセスするとこの問題が伝播することです (ドメインを経由せずにドメイン内のマシンのいずれかに SSH 接続すると、この問題は発生しません)...

これは大したことではありませんが、本当に迷惑です。

何か案が ?

答え1

これは通常、シェルで設定されている内容とターミナル エミュレータで設定されている内容が一致していないことが原因です。

バックスペース(0x08)を使用するものもあれば、DEL(0x7f)を使用するものもあります。ターミナルセッション内で、

stty -a

次のような行が表示されます:

intr = ^C; quit = ^\; erase = ^?; kill = ^U; ...

その消去は DEL 文字です。その文字を送信するように SSH を設定するか、次の操作を行う必要があります。

stty erase '^H'

シェルを変更します。

たとえば、Putty では、バックスペース キーを押したときに送信される文字を変更できることは知っています。ターミナル セクションのどこかに埋め込まれていると思います (少なくともバージョン 0.58 では) が、確認できる Windows が手元にありません。

しかし、そうではない本当にプログラミング関連なので、superuser.com に移行される可能性があります。

関連情報