Re: delete key doesn't work with csh in xterm session

From: Bob Proulx (bob_at_proulx.com)
Date: 05/30/04

  • Next message: Bob Proulx: "Re: Gdm Sessions Adding Enlightenment"
    Date: Sun, 30 May 2004 12:21:51 -0600
    To: debian-user@lists.debian.org
    
    
    

    Please don't "thread steal". You replied to a message with subject
    "Kernel Compile (being really stupid)" and then changed the subject.
    What does this have to do that that?

    Lucas Albers wrote:
    > I recently upgraded our central server from redhat 7.3 to debian woody/sarge.
    >
    > Not so hard, been really happy with the new setup.

    Glad to hear it. Just noting that none of the discussion I provide
    here should be any different between Red Hat and Debian. Both are
    using the Linux kernel and this is all related to the kernel.

    > For users using /bin/csh and running rxvt-xterm, their delete key does not
    > work.
    > Users running /bin/bash and running rxvt-xterm, their delete key does work.
    >
    > Both delete keys work on an ssh session.

    When you say it does not work do you mean it prints out ^H or ^? or
    something like that? If yes then which one is it? Here is what you
    need to know if that is the problem.

    Keyboards connected to linux kernels produce DEL (delete) which is
    character ^? aka 0x7F. Keyboards connected to some other kernels such
    as HP-UX produce BS (backspace) which is character ^H aka 0x08.
    Terminal emulators such as putty will also pick one or the other. I
    could cite other data points but you did not say what you were using
    so just assume that it might be one way or it might be the other way
    and you need to figure out which way your way is.

    Do not confuse the keypad-delete found on PC keyboards to the right
    side with normal delete. That is an additional key and not related to
    normal delete. Most people like the keypad delete to delete the
    character in front of the point and not behind the point like normal
    delete. The keypad delete scancode produced by the keyboard is
    usually mapped into an escape sequence (ESC [ 3 ~ on ANSI standard
    terminals) and not a single character.

    Since different hosts have different erase character settings the
    tty driver can be configured with different erase settings.

      stty erase ^H

    Or

      stty erase ^?

    The system will usually default to one or the other. Linux kernels
    default to ^?. Stallman is a long time vocal advocate that ^? is the
    one true way and ^H is Wrong and wrote the popular emacs editor such
    that using it on other systems takes special handling. This has
    certainly been one reason ^? is more popular today.

    Some very old time systems were connected to very old terminals
    without any backspace key. Think typewriters converted to computer
    use. You can't get the ink off of the paper after being printed. A
    common backspace key there was the # key. So some very old unix
    systems default to the tty driver assuming that # is the erase
    character. (I think HP-UX still does this but /etc/profile overrides
    it now.) Others assumed @ was the erase character like the Honeywell
    that I used way back when but that was an unusual machine even then.

    So the first step is to determine what character is produced when you
    use the "<-- backspace" key on your keyboard. Is it ^H (BS) or ^?
    (DEL) and you will need to set your tty erase character appropriately
    with the stty command. This is frequently troublesome when logging in
    from one computer to another across the network. The other computer
    will assume its own setting and you will need to update it to yours.
    It would be oh so nice if all computers used the same key. It would
    be oh so nice if all of the world drove on the same side of the road.
    But it ain't so.

    Another important point. The bash shell accepts pretty much anything
    for backspace. ^H, ^? or the current stty erase setting. I am sure
    they got tired of hearing about the problem. But other shells, other
    editors, vi, emacs, less, more, etc. all do the right thing and use
    the configured erase character from the tty driver. You can see the
    current erase setting in the 'stty -a' output. This is what makes
    bash appear to work but other shells not. It is not really working.
    It is just hiding the problem. If you start up less on a file you
    will find that backspace does not work there even when it is working
    on bash. So you should configure it properly regardless of your
    shell.

    > I've looke through google, and found some items on setting delete keys
    > manually but they do not appear to be applying correctly for csh.

    Very little applies correctly to csh. The csh was the ultimate shell
    to use on paper terminals. But now that most people using computers
    today is, "you are using a what?" it is better to forget about it
    entirely. I highly recommend you use a more modern shell. I am not
    talking about tcsh either. :@}

    > I've run accross references to two methods for setting the delete key:
    > bindkey "e[^H" delete-char # Delete
    > and
    > stty echoe erase ^H

    The stty command can take a long string of args. The 'echoe' means
    convert the erase character into a backspace-space-backspace
    sequence. This is otherwise known as crterase. The fact that it is
    named "CRT" erase to differentiate it should be telling the type of
    computers which used one versus the other in the old days. Using
    echoe is a good thing but likely the default and I really doubt you
    need to set it. Check 'stty -a' for the current settings.

    > But neither work for csh rxvt-xterm sessions.
    >
    > Any ideas on what else I can try?
    >
    > --
    > --Luke CS Sysadmin, Montana State University-Bozeman

    Because you are at a university I was assuming that you were mixing
    and matching different types of machines. A possibly incorrect
    assumtion, however.

    Hope that helped.

    Bob

    
    

    -- 
    To UNSUBSCRIBE, email to debian-user-REQUEST@lists.debian.org 
    with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
    

    • application/pgp-signature attachment: stored

  • Next message: Bob Proulx: "Re: Gdm Sessions Adding Enlightenment"

    Relevant Pages

    • Debug level "fixes" crash?
      ... Image Name: Linux kernel for PQ2FADS ... ADS init IRQ. ... Typical block erase timeout: 1024 ms ...
      (comp.os.linux.embedded)
    • Debug level "fixes" crash?
      ... Image Name: Linux kernel for PQ2FADS ... ADS init IRQ. ... Typical block erase timeout: 1024 ms ...
      (comp.os.linux.development.system)
    • Re: modprobe.conf
      ... differently from a character by character, ... what device (driver) to run to access it. ... if the kernel is set to autoload modules, ... it won't load them until it is necessary. ...
      (comp.os.linux.hardware)
    • has ANYONE used FreeBSD read Chinese directories from a Windows Share? (was: Re: (repost) cannot rea
      ... If our understanding to the current problem is correct (that FreeBSD ... kernel iconv currently have problem with double-bit character-set), ... have Chinese character in folder names ... is using iconv lib which compiled as kernel module. ...
      (freebsd-questions)
    • Re: UTF-8 and case-insensitivity
      ... Userland would be responsible for making a useful pathname. ... But the kernel doesn't care about encodings and character sets. ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)