���� ���� ����

5. Delete�� Backspace

Delete�� Backspace Ű�� ����� �����ϵ��� �ϴ� ���� �׸� ������ ������ �ƴϴ�. Ư�� �ܼ�, X, bash, emacs, ���� �α��� �� ���������� ȥ�յ� ȯ�濡���� ������ �׷��ϴ�. �Ƹ��� ����ڰ� ���ϴ� �ٸ� ��Ȯ�� �����ϵ��� ����� ���α׷� ��ο��� �����Ϸ��� �������� ȯ�漳��ȭ���� �����ؾ� ������ �𸥴�. �������δ� Ű�� �߻���Ű�� �ڵ尡 ���������� (�׸��� kermit�̳� emacs��� �̷��� �ڵ尡 � ��Ģ���� �ٽ� ���εǴ�����) ������ �ǰ�, �ٸ� �������δ� �� �ڵ忡 ����� ����� ���������� ������ �ȴ�.

������� ���� `�齺���̽� Ű�� �۵����� �ʴ´�.'�� �����ϴµ�, �̰��� ��ġ �� Ű�� `������ ���ڸ� �����' ����� ����� �ִ� ��ó�� ���ϴ� ���̴�. ������ �������� �� Ű�� �ϴ� ���̶�� �ڵ� �ϳ��� �߻��ϴ� �ͻ��̸�, Ŀ�� tty ����̹��� ��� ���ø����̼� ���α׷��� �齺���̽� Ű�� ������ `���� ���ڸ� �����' ������ �ϵ��� �����Ǿ� �ֱ⸦ �����ϴ� ���� �����̴�.

��� ���н� ���α׷��� `�丮��' ��忡�� Ŀ�� tty ����̹��� ���� tty �Է��� �ް�, �ܼ��� stty ������ ���� ���ڸ� �����Ѵ�. ������ bash�� emacs, X ���� ���α׷��� ���������� �Է��� �ٷ�� �ϳ��� �ùٷ� �����ϴ��� Ȯ���ؾ� �Ѵ�.

5.1 ���н����� ���� ���ڸ� ����µ� ����� ���ڸ� �����ϴ� ���

        % stty erase ^?
���ڰ� �������� ������ �̻��� ������� �������ٸ� ������� tty ������ ���� �߸��� ���� �ִ� ���̴�. echoprt�� �����Ǿ� �ִٸ� ������ ���ڴ� \�� /�� �ѷ��ο�����. echoe�� �����Ǿ� ���� ������ ���� ���ڰ� ȭ�鿡 ���� ���̴�. (#�� ���� ȭ�鿡 ǥ�õǴ� ������ ����� �翬�ϴٰ� ������ ���̴�.) ������ ���� stty echoe -echoprt ���¸� ���Ѵ�. stty sane�̶�� �ϸ� �̷� ���°� �Ǹ�, �� �̿ܿ��� ����� �� �����Ѵ�. stty -a��� ������ ������ ���� ���� ���¸� ȭ�鿡 �����ش�. ����ڰ� �ùٸ� getty�� ����ϸ� ����Ʈ�� ������ ���·� �Ǿ� �ִ�.

bash�� emacs ��� ���� ���α׷��� �������� Ű���ε��� ������ ������ �����϶�. (~/.inputrc, ~/.emacs � ���ǵǾ� �ִ�.) �̷� ���α׷����� ���� ���� ������� ������ ���� �ʴ´�.

ǥ�� ���н� tty ����̹��� (ȭ��ǥ ����) Ű�� Ŀ���� ���� ��ġ�� �̵��ϴ� ������ �ν����� �ʴ´�. ���� `���� ���� ����' ���ɵ� ����. ������ �ֻܼ��� bash���� �Ʒ��� ����

        set editing-mode emacs
        "\e[3~":delete-char
�� ~/.inputrc�� �־��ָ� Delete Ű�� �ν��ϵ��� �� �� �ִ�.

`DEL�� BS�� �� �۵��ϴ� Getty�� ������ �����ִ� ���ΰ�?'

�������� �ܼ� ����̹��� DEL (\177)�� ������ BS Space BS (\010\040\010)�� �����ϵ��� �صξ���. ������ ������ DEL�� ���õȴ�. (�̰��� �翬�� ���� ����̹��� vt100�� �䳻���� �����̴�.) DEL�� ������� �ʴ� �ֽ��� getty�� ���ؼ� ����϶�.

`ù��° �α��� �õ��� �ι�° �α��� �õ��� �� �ٸ��� ����. �̰��� �����ΰ�?'

ù��° �α��� �õ��� getty�� �̾߱��ϴ� ��������, �ι�° �õ��� login�� �̾߱��ϴ� ���̴�. ���� �ٸ� ���α׷��̴�.

5.2 ���������� Ű�� ���� �� �߻��ϴ� �ڵ带 �����ϴ� ���

�ֿܼ���, ��Ȯ�� �����ڸ� raw ��尡 �ƴ� ��쿡��

        % loadkeys mykeys.map
�̶�� �ϸ� �ȴ�. X ȯ�濡����
        % xmodmap mykeys.xmap
�� ����ϸ� �ȴ�. (XFree86-2.1 �̷���) X�� ó�� ���۽ÿ� X keymap�� �ʱ�ȭ�� ��, ������ keymap ������ �д´ٴ� ��ǿ� �����϶�. ��� �� �ý����� 100% ȣȯ������ ������ �̷��� ����� ���� ��쿡 xmodmap�� ���� ������� �ִٴ� ���� �ǹ��ϱ� �����̴�.

���� ���, ����ڰ� �齺���̽� Ű�� BackSpace (^H, 8���� 010)�� �������� �Ϸ� �ϰ�, ȸ�� Delete Ű�δ� DEL (8������ 0177)�� ������ �Ѵٸ�, /etc/rc.local (�Ǵ� ����ڸ��� ���� ����ȭ�Ͽ�)

        /usr/bin/loadkeys << EOF
        keycode 14 = BackSpace
        keycode 111 = Delete
        EOF
��� ÷���ϸ� �ȴ�. �� ������ �ٸ� ������ �ٲ��� �ʾҴٸ� �ΰ��� Ű ������ �ٲ۴ٴ� ��ǿ� ������ �ʿ䰡 �ִ�. (�ٸ� Ű�ʿ����� Ű ������ �ٲٰ� �ʹٸ�, ��� Ű���� �ٲ��� Ű�� ������ ������ �־�� �Ѵ�.) ������ Ŀ���� ����Ʈ�� Ctrl-Backspace Ű�� BackSpace�� �߻��ϵ��� �Ǿ� �ִ�. �̰��� ������ DEL �ڵ常 ����� ���� ��Ȳ���� ���������µ� �����ϴ�.

���� Alt Ű�� ���� ��ŸŰ��� �θ���. ����Ʈ�� ���� Alt-X Ű������ MetaX�� �����Ǿ� �ִ�. �׷��ٸ� MetaX�� � Ű �������ΰ�? �װ��� (������ tty����) ��Ÿ �÷��׿� ���ؼ� �����ȴ�. �̰��� setmetamode �������� ������ �� �ִ�. ESC X�� ġ�� �Ͱ� 0200�� OR������ �� X�� ġ�� �ΰ��� ����� �����Ѵ�.

`�� ����Ʈ�� �齺���̽� Ű�� BackSpace�� �߻��ϵ��� ���� �ʾҳ�?'

(i) �ֳ��ϸ� VT100���� Delete Ű�� Enter Ű ���� �־��� �����̴�.

(ii) ���� �������� �׷��� ���߱� �����̴�.

5.3 X���� Delete�� �齺���̽��� �ٲٴ� ���

        % xmodmap -e "keysym BackSpace = Delete" -e "keysym Delete = BackSpace"
�齺���̽� Ű�� BackSpace�� �߻��ϵ��� �Ϸ���
        % xmodmap -e "keycode 22 = BackSpace"
Delete Ű�� Delete�� �߻��ϵ��� �Ϸ���
        % xmodmap -e "keycode 107 = Delete"
(������ ���� �̹� ����Ʈ�� �Ǿ� ���� ���̴�.)

5.4 emacs���� Delete�� Backspace�� ���� ���� �����ϴ� ���

������� .emacs ȭ�Ͽ� ���� ������ �߰��ϸ� �ȴ�.

        (global-set-key "\?" 'help-command)
        (global-set-key "\C-h" 'delete-backward-char)
���� �̷� ������� �ϸ� �ٸ� Ű���� ������ �����ų �� �ִ�. Ű ������ ��Ŀ��� �������� major �� minor ����� ������ ������ �ʿ䰡 �ִ�. ���� ���, incremental search ��忡���� ������ ���� �ڵ尡 �ִ� ���� �߰��� �� �ִ�.
        (define-key map "\177" 'isearch-delete-char)
        (define-key map "\C-h" 'isearch-mode-help)
�̰��� ���� ���� �� ������ global Ű �������� ����ϴ� ���� ���� ���� ����� �ƴ϶�� ���� �� �� �ִ�. ���� ���α׷����� ^H = help�� DEL = delete��� �����Ͽ� Ű�� ����Ѵ�. ���� �ݵ�� �齺���̽� Ű�� DEL�� �߻��ϵ��� Ű�� �����ؾ߸� �ϴ� ���� �ƴϴ�. �׷��� Ű ������ �̷��� �Ǿ� ���� ������ emacs���� ����� �� �ִ� ���� ���� ���������� �� Ű���� �缳���ϴ� ���� ���� ���� ����̴�.

5.5 emacs���� Delete�� Backspace�� �ٲٴ� ���

������� .emacs ȭ�Ͽ� ���� ������ �߰��ϸ� �ȴ�.

        (setq keyboard-translate-table (make-string 128 0))
        (let ((i 0))
          (while (< i 128)
            (aset keyboard-translate-table i i)
            (setq i (1+ i))))
        (aset keyboard-translate-table ?\b ?\^?)
        (aset keyboard-translate-table ?\^? ?\b)
emacs�� �ֽ� ���������� keyboard-translate �Լ��� �����ϱ� ������ �����ϰ� �Ʒ��� ���� �ص� �ȴ�.
        (keyboard-translate ?\C-h ?\C-?)
        (keyboard-translate ?\C-? ?\C-h)
X ȯ�濡���� (�ֿܼ��� �� Ű�� � �ڵ带 ����� ����) emacs�� Ctrl-h�� �齺���̽� Ű�� ������ �� �ִ�. �׸��� emacs�� ����Ʈ�� �齺���̽� Ű�� DEL�� ������ ���̴�. (���� ^H�� ����� ���� ����� �ƴ϶� ���ڸ� ����� ���� �� ���̴�.) �齺���̽��� Delete�� �����Ͽ� ����Ϸ��� ������ ���� �ϸ� �ȴ�.
        (global-unset-key [backspace] )
        (global-set-key [backspace] 'delete-backward-char)
        (global-unset-key [delete] )
        (global-set-key [delete] 'delete-char)

5.6 kermit���� Delete�� Backspace�� �ٲٴ� ���

.kermrc ȭ�Ͽ� ���� ������ �߰��ϸ� �ȴ�.

        set key \127 \8
        set key \8 \127

5.7 xterm���� �Ը��� �´� tty ��� �����ϴ� ���

���� xterm�� �̰��� ȣ���� ���α׷��� tty ��带 ��ӹ޴´�. xdm ȯ�濡���� ���� ���н� ���� 6������ ���� ����Ʈ�� ������ ����� �� ���̱� ���ڴ� #�� @�̴�. �� ������ ������ �ȵ�� �Ʒ� ������ /usr/lib/X11/app-defaults/XTerm�� $HOME/.Xresources�� ������ �ȴ�.

        XTerm*ttymodes: erase ^? kill ^U intr ^C quit ^\ eof ^D \ 
                        susp ^Z start ^Q stop ^S eol ^@
���� $HOME/.xinitrc�� $HOME/.xsession��
        xrdb $HOME/.Xresources
��� ������ �־�� �۵��Ѵ�.

5.8 xmosaic���� Backspace Ű�� DEL�� �߻��ϵ��� �����ϴ� ���

�Ʒ� ������ $HOME/.Xresources�� ������ �ذ�� ���̴�.

        *XmText.translations: #override\n\
           <Key>osfDelete: delete-previous-character()
        *XmTextField.translations: #override\n\
           <Key>osfDelete: delete-previous-character()

������ �ݽ������� FAQ���� ������ ���� ������ �ִ�.

        �� �ؽ�Ʈ �ʵ忡�� �齺���̽� Ű�� ���� ���� �ʴ°�?
        ����Ʈ�� �������� XFree86���� �齺���̽��� Delete Ű�� �߸� �����Ǿ�
        �ִ�. (�ݽ������� �׺�����͸� ������) ��� ��Ƽ�� ���α׷�����
        �Ȱ��� �߸� �۵��� ���̴�.

        ��Ƽ�� ���忡 ���� �齺���̽��� ���� ���ڸ� ���쵵�� �Ǿ� �ְ�
        Delete�� ���� ���ڸ� ���쵵�� �Ǿ� �ִ�. �������� XFree86��
        �齺���̽��� Delete Ű�� ��� Delete�� �߻��ϵ��� �����Ǿ� �ִ�.

        ����ڴ� xmodmap, xkeycaps, loadkeys�� �ϳ��� ����Ͽ� ������
        Ű�� Delete ��ſ� BackSpace keysym�� �߻��ϵ��� �� �� �ִ�.

        �ٸ� ������δ� .motifbind ȭ���� ����� �ذ��� �� �ִ�. man ������
        VirtualBindings(3)�� �����϶�.

        ����: �� ������ �ذ��ϱ����� *XmText.translations��
        *XmTextField.translations ���ҽ� ȭ���� ������� �ʴ� ���� ����.
        �Ƹ��� �̰��� �ǵ帮�� �ݽ������� �׺�������� �ٸ� �ؽ�Ʈ �ʵ���
        Ű ������ ��� ������ ���̴�.

5.9 �ݽ��������� ���� ��Ƽ���� ����ϴ� ���α׷��� �� ���� �ذ�å

Ted Kandell (ted@tcg.net)�� �ذ�å�� ������ ����.

������� .profile ȭ�Ͽ� ������ ������ ����.

stty erase ^H
bash ����ڶ�� .inputrc�� ���� ������ �߰��Ѵ�.
"\C-?": delete-char
"\C-h": backward-delete-char
.xinitrc ȭ�Ͽ��� �Ʒ��� ������ �߰��Ѵ�.
xmodmap <<-EOF
keycode 22  =  BackSpace osfBackSpace
keycode 107 =  Delete
EOF

# ������ �����ڸ� �����Ų��.
#(fvwm) 2>&1 | tee /dev/tty /dev/console

stty sane
stty erase ^H
loadmap <<-EOF
keycode 14  = BackSpace
keycode 111 = Delete
EOF

�̷��� �ϸ� ������/XFree86 ����� PC 101 �Ǵ� 102 Ű���忡���� �ݵ�� �� ������ ���̴�.

�ݽ��������� ���� ��Ƽ�� ���α׷��� �� �����ϵ��� �ϴµ� �߿��� �κ��� osfBackSpace�� BackSpace�� �Բ� Ű�ڵ� 22�� �ִ� ���̴�.

= ��ȣ ���ʿ��� �ݵ�� ������ �־�� �Ѵٴ� ���� ������ ��.

5.10 termcap�� terminfo�� ����?

����ڵ��� �齺���̽� ������ �ε�����, �밳 �͹̳��� ����ϴ� termcap (�Ǵ� terminfo) �׸��� �����Ÿ���. ���� �ű⿡ ���� kb (�Ǵ� kbs)��� �׸��� �ְ�, �齺���̽� Ű�� ����� �ڵ忡 ���� ������ ���´�. ������ �״��� ���� ���α׷��� �̰��� ����ϴ� ���� �ƴϴ�. ���� ���� Ư���� ���α׷������� ������ �߻��Ѵٸ� �Ƹ��� ������ �ٸ����� ���� ���ɼ��� ����. ���� termcap (terminfo) �׸��� ���ļ� ������ �ذ��ϴ� �͵� ���� �����̴�. �ڿ� "TERM ����" �κ��� �����ϸ� ������ �� ���̴�.


���� ���� ����