Backspace 键在 xterm 输出 Delete

这个问题由 xterm-192-1.EL4.0 开始出现。CentOS 4.4 包含了 192-4.EL4 版本,而 CentOS 4.3 则包含了 192-1(变动出现前)。

当时,下列(及其它)内容被新增至 XTerm 资源档中,它位於: /usr/X11R6/lib/X11/app-defaults/XTerm

其它相关的资源档可能包括 UXTerm 及 XTerm-color,它们也位於同一目录内。

这两行:

! keyboard setup
*VT100*backarrowKey: false

这个特定资源会导致所有终端機停用 backarrowKey 的功能,意思就是 BS 不再输出 ^H,却会输出 DEL(^?)。

要测试这个现象,打开一个 xterm,然后用 Control-左按键 打开其中一个设置窗口(按著你的鼠标的左键),选择 "Backarrow Key (BS/Del)" 这个选项。当被启用时,你会得到 ^H,当停用时,你会得到 ^?。

最低调的解决方法就是在用户的主目录创建一个 .Xresources 文件(~/.Xresources),并在里头加入:

*VT100*backarrowKey: true

之后,你可以重新引导 X(Control-Alt-Backspace 是一个好的方法,又或者以 root 的身份执行 "telinit 3; telinit 5"),你亦可以输入新的数值:

xrdb -merge ~/.Xresources

当然,你也可以直接编辑 XTerm 资源档,或者 /etc/X11/Xresources,但这样做可能会(必定会?)在将来更新时导致问题出现。

这个方法的最大优点就是将来更新时不会失去功用。

无论如何,这些改动必须在关闭现有的终端機窗口,然后重新打开它们后才会生效。

Translation of revision 8

zh/TipsAndTricks/BackSpace (last edited 2010-01-18 04:12:21 by TimothyLee)