リモートサーバーのシェルが端末のバックスペースキーを^?
と見なし、場合によっては^H
と見なし、誤って誤った文字を出力するという、この頻繁に発生する問題を修正したいと思います。バックスペースを押します。 ^ Hまたは^?に設定した場合私の.bashrcファイルでstty erase ^H
またはstty erase ^?
を使用し、他の端末を使用してサーバーにアクセスすると、多くの場合間違ってしまいます。そのため、Backspaceキーが間違っていることに気付いた場合は、手動でstty erase [whatever]
を入力して修正する必要があるので困っています。
私がやりたいのは、^?
と^H
の両方をバックスペースにバインドすることです。これができる場合は、すべての.bashrcファイルに追加するだけで、確実にこれを終了できます。悪夢。これは可能ですか?もしそうなら、どうですか?
このページ には、この問題でこれまでに必要となるすべての情報が含まれています。ぜひお読みください。ここで、bash
を使用している場合は、次の行を含む~/.inputrc
ファイルを作成するだけで十分です。
"\e[3~": delete-char
# this is actually equivalent to "\C-?": delete-char
# VT
"\e[1~": beginning-of-line
"\e[4~": end-of-line
# kvt
"\e[H":beginning-of-line
"\e[F":end-of-line
# rxvt and konsole (i.e. the KDE-app...)
"\e[7~":beginning-of-line
"\e[8~":end-of-line
追加のボーナスとして、彼らは Home そして End 同様に動作します。
http://web.archive.org/web/20120621035133/http://www.ibb.net/~anne/keyboard/keyboard.html のほとんどの情報は、本当に必要なものです。情報の1つの訂正は、それらの提案です(XTermの場合):
*VT100.Translations: #override \
<Key>BackSpace: string(0x7F)\n\
<Key>Delete: string("\033[3~")\n\
<Key>Home: string("\033[1~")\n\
<Key>End: string("\033[4~")
*ttyModes: erase ^?
これにより、XTermは正しい文字を送信し、バックスペースを^?
としてsttyを変更しますが、場合によっては誤って^H
をバックスペースとして報告し、Vim instertモードのバックスペースを壊します(ここを参照) : https://bugs.gentoo.org/15409 )。これを回避するには、代わりにVT100.backarrowKey: false
を使用してください。
*VT100.backarrowKey: false
*VT100.Translations: #override \
<Key>Delete: string("\033[3~")\n\
<Key>Home: string("\033[1~")\n\
<Key>End: string("\033[4~")
*ttyModes: erase ^?
([ここにリンクを挿入してください]も参照))