tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: backspace trouble



  [backspace troubles]

You speak of "delete" as expecting it to delete right, and there's a
critical distinction between DEL and Delete.  As I'm sure you know, one
is ASCII and the other is an ANSI sequence dating from I think the
vt100.

emacs has code to figure out whether the Backspace keysym is something
that should be mapped to DEL or to BS.  I had never really noticed, but
in X keysym <backspace> is mapped to DEL, and all works as one used to
DEC terminals would expect.  <delete> (the "Delete" key) is translated
to C-d.

  
http://www.gnu.org/software/emacs/manual/html_node/emacs/DEL-Does-Not-Delete.html

The following may be helpful.  I set up X so that the key labeled
backspace sends DEL.  Then I have my erase character set to DEL.  emacs
works fine, and I can type ^H for help.  Without this, ^H deletes and
there's no easy way to invoke help.



/*
 * The following comments are for those that believe the key that is
 * where the delete (DEL) key belongs (from a VT52 or VT100) should
 * send DEL (0177) and that the terminal erase character should also
 * be DEL (0177).
 * 
 * On a PC keyboard, the BackSpace key generates
 * keycode 22 (keysym 0xff08, BackSpace).
 * The "Delete" key is a function key near Insert, not a DEL key, and it
 * generates keycode 107 (keysym 0xffff, Delete).
 * XXX Figure out what happens under X with a keyboard with a real DEL key.
 */

/*
 * Don't mess with the pty's notion of erase (which defaults to DEL in
 * NetBSD).  This should be set on all computers, regardless of the
 * type of keyboard.
 */
*ptyInitialErase: true

/*
 * Make the backarrow key send DEL (without control), rather than BS.
 * This should be set for any display whose keyboard has a key labeled
 * BackSpace where the delete (DEL) key should be.
 */
*backarrowKey: false

/*
 * Alternatively, one could set backarrowKeyIsErase to true, which the
 * man page says would set the backarrowKey state according to whether
 * stty erase character is DEL or BS.
 */

/*
 * It appears that ssh propagates the local stty erase character
 * setting to the remote machine, at least when both ends are NetBSD
 * 1.6.2ish.  Thus, fixing the key that should be delete locally
 * (above) is sufficient to cause the correct behavior on remote
 * systems (i.e., ssh sends 0177 when the key-where-DEL-should-be is
 * pressed, the remote stty erase setting is 0177, in emacs both
 * DEL and M-DEL work correctly, and one can invoke help by sending 010
 * (by typing C-DEL or C-H).  (With the standard behavior of DEL
 * sending BS and stty erase set to BS, one cannot easily invoke help
 * in emacs.)
 */

Attachment: pgpfhuYy4macF.pgp
Description: PGP signature



Home | Main Index | Thread Index | Old Index