Next: , Up: Lossage   [Contents][Index]


50.1 DELで削除できない場合

すべてのキーボードには多くのキーがありますが、通常BACKSPACEとラベルされたキーは、最後にタイプした文字を削除するのに使用されます。Emacsでは、このキーはDELに等しいと想定されています。

グラフィカルなディスプレーでEmacsを開始したとき、EmacsはどのキーがDELなのか自動的に決定します。いくつかの特殊なケースでは、Emacsがシステムから間違った情報を取得して、BACKSPACEが後方ではなく前方に削除する場合があります。

Deleteというキーをもつキーボードもあります。これは通常、前方に削除するために使用されます。Emacsでこのキーが後方に削除を行なう場合も、Emacsが間違った情報 — ただし反対の意味の — を受け取ったことを意味します。

テキスト端末で、BACKSPACEが文字を削除するかわりに、Control-hのようなヘルプコマンドのプロンプトを表示する場合、それはこのキーが実際は‘BS’文字を送っていることを意味します。EmacsはBSDELと扱うべきですが、そうしていないのです。

これらのケースのすべてにおいて、直ちに改善できることは同じでで、それはコマンドM-x normal-erase-is-backspace-modeを使用する方法です。これはEmacsがDELの処理をサポートする2つのモードを切り替えるので、もしEmacsが間違ったモードで開始された場合、正しいモードに切り替えることができます。テキスト端末では、BSDELとして扱われる場合にヘルプを見たいときは、F1を使用します。C-?が文字コード127を送る場合は、このキーも機能するでしょう。

すべてのEmacsセッションで問題を解決するには、初期化ファイル(Init Fileを参照してください)に以下の行の1つを記述します。上記の最初のケースでは、BACKSPACEが後方ではなく前方に削除を行なうので、BACKSPACEDELとして動作するように、以下の行を使用します:

(normal-erase-is-backspace-mode 0)

他の2つのケースでは、以下の行を使用します:

(normal-erase-is-backspace-mode 1)

すべてのEmacsセッションで問題を解決する別の方法は、変数normal-erase-is-backspaceをカスタマイズする方法です。BSまたはBACKSPACEDELとなるようにモードを指定するには値t、他のモードにたいしてはnilを指定します。Easy Customizationを参照してください。