efaq: Backspace invokes help

 
 9.6 Why does the <Backspace> key invoke help?
 =============================================
 
 The <Backspace> key (on most keyboards) generates ASCII code 8.  ‘C-h’
 sends the same code.  In Emacs by default ‘C-h’ invokes help-command.
 This is intended to be easy to remember since the first letter of ‘help’
 is ‘h’.  The easiest solution to this problem is to use ‘C-h’ (and
 <Backspace>) for help and <DEL> (the <Delete> key) for deleting the
 previous character.
 
    For many people this solution may be problematic:
 
    • They normally use <Backspace> outside of Emacs for deleting the
      previous character.  This can be solved by making <DEL> the command
      for deleting the previous character outside of Emacs.  On many Unix
      systems, this command will remap <DEL>:
 
           stty erase '^?'
 
    • The user may prefer the <Backspace> key for deleting the previous
      character because it is more conveniently located on their keyboard
      or because they don’t even have a separate <Delete> key.  In this
      case, the <Backspace> key should be made to behave like <Delete>.
      There are several methods.
 
         − Some terminals (e.g., VT3## terminals) and terminal emulators
           (e.g., TeraTerm) allow the character generated by the
           <Backspace> key to be changed from a setup menu.
 
         − You may be able to get a keyboard that is completely
           programmable, or a terminal emulator that supports remapping
           of any key to any other key.
 
         − With Emacs 21.1 and later, you can control the effect of the
           <Backspace> and <Delete> keys, on both dumb terminals and a
           windowed displays, by customizing the option
           ‘normal-erase-is-backspace-mode’, or by invoking ‘M-x
           normal-erase-is-backspace’.  See the documentation of these
           symbols (SeeEmacs Lisp documentation) for more info.
 
         − It is possible to swap the <Backspace> and <DEL> keys inside
           Emacs:
 
                (keyboard-translate ?\C-h ?\C-?)
 
           This is the recommended method of forcing <Backspace> to act
           as <DEL>, because it works even in modes which bind <DEL> to
           something other than ‘delete-backward-char’.
 
           Similarly, you could remap <DEL> to act as ‘C-d’, which by
           default deletes forward:
 
                (keyboard-translate ?\C-? ?\C-d)
 
           SeeSwapping keys, for further details about
           ‘keyboard-translate’.
 
         − Another approach is to switch key bindings and put help on
           ‘C-x h’ instead:
 
                (global-set-key "\C-h" 'delete-backward-char)
 
                ;; overrides mark-whole-buffer
                (global-set-key "\C-xh" 'help-command)
 
           This method is not recommended, though: it only solves the
           problem for those modes which bind <DEL> to
           ‘delete-backward-char’.  Modes which bind <DEL> to something
           else, such as ‘view-mode’, will not work as you expect when
           you press the <Backspace> key.  For this reason, we recommend
           the ‘keyboard-translate’ method, shown above.
 
           Other popular key bindings for help are ‘M-?’ and ‘C-x ?’.
 
      Don’t try to bind <DEL> to ‘help-command’, because there are many
      modes that have local bindings of <DEL> that will interfere.
 
    When Emacs 21 or later runs on a windowed display, it binds the
 <Delete> key to a command which deletes the character at point, to make
 Emacs more consistent with keyboard operation on these systems.
 
    For more information about troubleshooting this problem, see SeeIf
 <DEL> Fails to Delete (emacs)DEL Does Not Delete.