どのキーボードにも、通常はBACKSPACEと表記された大きなキーがあり、一般的に直前に入力した文字を削除するために使用されます。Emacsでは、このキーはDELと同等であるとされています。
グラフィカルディスプレイでEmacsが起動すると、どのキーをDELとすべきかが自動的に判定されます。まれに、Emacsがシステムから誤った情報を受け取り、BACKSPACEが後方ではなく前方へ削除してしまうことがあります。
一部のキーボードにはDeleteキーもあり、通常は前方への削除に使用されます。もしEmacsでこのキーが後方への削除を行うのであれば、それもまたEmacsが誤った情報を得たことを示唆しています—ただし、逆の意味で。
テキスト端末において、BACKSPACE が Control-h のように Help コマンドを要求する場合、文字を削除するのではなく、そのキーが実際に ‘BS’ という文字を送信していることを意味します。Emacs は BS を DEL として扱うべきですが、実際にはそうなっていません。
いずれの場合も、当面の対処法は同じで、M-x normal-erase-is-backspace-mode コマンドを使用することです。これにより、Emacs が DEL の処理でサポートしている2つのモードが切り替わります。そのため、Emacs が誤ったモードで起動した場合、この操作で正しいモードに切り替わるはずです。テキスト端末で、BS が DEL として扱われている際にヘルプを求めたい場合は、C-h の代わりに F1 を使用してください。また、文字コード 127 を送信するのであれば、C-? でも動作する可能性があります。
すべてのEmacsセッションでこの問題を解決するには、以下のいずれかの行を初期化ファイル(Emacs初期化ファイルを参照)に追加してください。上記の最初のケースで、BACKSPACEが後方ではなく前方に削除される場合は、以下の行を使用してBACKSPACEをDELと同様に動作させてください:
(normal-erase-is-backspace-mode 0)
他の2つのケースでは、この行を使用してください:
(normal-erase-is-backspace-mode 1)
すべてのEmacsセッションでこの問題を解決するもう一つの方法は、変数 normal-erase-is-backspace をカスタマイズすることです。値 t は BS または BACKSPACE が DEL となるモードを指定し、nil はもう一方のモードを指定します。簡単なカスタマイズインターフェースを参照してください。