すべてのキーボードには多くのキーがありますが、通常BACKSPACEとラベルされたキーは、最後にタイプした文字を削除するのに使用されます。Emacsでは、このキーはDELに等しいと想定されています。
グラフィカルなディスプレイでEmacsを開始したとき、EmacsはどのキーがDELなのか自動的に決定します。いくつかの特殊なケースでは、Emacsがシステムから間違った情報を取得して、BACKSPACEが後方ではなく前方に削除する場合があります。
Deleteというキーをもつキーボードもあります。これは通常、前方に削除するために使用されます。Emacsでこのキーが後方に削除を行なう場合も、Emacsが間違った情報 — ただし反対の意味の — を受け取ったことを意味します。
テキスト端末で、BACKSPACEが文字を削除するかわりに、Control-hのようなヘルプコマンドのプロンプトを表示する場合、それはこのキーが実際は‘BS’文字を送っていることを意味します。EmacsはBSをDELと扱うべきですが、そうしていないのです。
これらのケースのすべてにおいて、直ちに改善できることは同じでで、それはコマンドM-x normal-erase-is-backspace-modeを使用する方法です。これはEmacsがDELの処理をサポートする2つのモードを切り替えるので、もしEmacsが間違ったモードで開始された場合、正しいモードに切り替えることができます。テキスト端末では、BSがDELとして扱われる場合にヘルプを見たいときは、C-hのかわりにF1を使用します。C-?が文字コード127を送る場合は、このキーも機能するでしょう。
すべてのEmacsセッションで問題を解決するには、初期化ファイル(Emacs初期化ファイルを参照してください)に以下の行の1つを記述します。上記の最初のケースでは、BACKSPACEが後方ではなく前方に削除を行なうので、BACKSPACEがDELとして動作するように、以下の行を使用します:
(normal-erase-is-backspace-mode 0)
他の2つのケースでは、以下の行を使用します:
(normal-erase-is-backspace-mode 1)
すべてのEmacsセッションで問題を解決する別の方法は、変数normal-erase-is-backspace
をカスタマイズする方法です。BSまたはBACKSPACEがDELとなるようにモードを指定するには値t
、他のモードにたいしてはnil
を指定します。Easy Customizationインターフェースを参照してください。