Go to the first, previous, next, last section, table of contents.

何故 "バックスペース" キーがヘルプ・コマンドを起動するのですか?

バックスペース・キーは (すくなくとも私が使っているすべてのキーボードでは) ASCII コードの 8 を生成します. C-h も同じコードを生成します. Emacs はデフォルトで C-h が `help-command' を起動します. `help' の先頭が `h' なので覚えやすいようにこう決められました. もっとも簡単な解決法は C-h (すなわちバックスペース) で help を DEL (デリート・キー) で直前の文字を削除するというデフォルトの設定で 使うことです.

少なからず問題が残るのですが次のような解決法もあります:

  1. Emacs 以外では通常 バックスペースは直前の文字を削除するように定義されています. Emacs 以外でも DEL で直前の文字を削除するようにすれば解決できるでしょう. このためには
      stty erase '^?'
    
    と実行します.
  2. バックスペース・キーの方がキーボードの便利な位置にあるとか, デリート・キーがないとかの理由で バックスペース・キーで直前の文字を削除することに固執する場合, バックスペース・キーにデリート・キーのように振る舞わせることもできます. ひとつの方法はバックスペース・キーとデリート・キーを 取り替えてしまうことです:
      (swap-keys ?\C-h ?\C-?)
    
    swap-keys の実装は質問 61 を参照してください. もうひとつの方法はヘルプ機能を "C-x h" にバインドすることです:
      (global-set-key "\C-h" 'delete-backward-char)
      (global-set-key "\C-xh" 'help-command) ; override mark-whole-buffer
    
    注意: この方法は独自の backward-character-deletion コマンドや help コマンドを持つメジャー・モードやマイナー・モードでは うまく機能しません. 例えば C モードや Lisp モードはこれに該当します. すべてのモードでもうまく働くようにすることはかなり面倒です.

Go to the first, previous, next, last section, table of contents.