GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/DEL-Does-Not-Delete.html ・ emacs-doc.conao3.com

53.8 DEL の削除に失敗した場合

どのキーボードにも、通常は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 はもう一方のモードを指定します。簡単なカスタマイズインターフェースを参照してください。