8. 更多技巧

所以,您对您获得的信息不满意。在这种情况下,您可以使用合适的命令来获取或设置 X 和控制台处理按键的方式,从而在 Backspace/Delete 问题上进行更多技巧。

有可能因为某些原因,我所说的关于 X 的内容是不正确的,也就是说,X 没有 将键码 22 转换为键符 BackSpace,将键码 107 转换为键符 Delete(甚至在您的特定键盘上,与 Backspace/Delete 关联的键码不是 22 和 107)。为了确定这一点,您需要使用 xev,这是一个简单的 X 应用程序,它将显示与您按下的键关联的键码和键符。如果出现任何问题,您有几种方法可以解决问题:简单、临时的方法是使用 xmodmap,这是一个允许您更改与 X 键盘处理相关的许多设置的命令。例如,
xmodmap -e "keycode 22 = BackSpace"
xmodmap -e "keycode 107 = Delete"
将正确设置键符(假设 22 和 107 是您的正确键码)。如果您想永久进行一些更改,您可以操作以下资源vt100.backArrowKey, vt100.translationsttyModesxterm(和类似的终端应用程序)的配置文件中~/.Xdefaults。例如,一种可能性是
XTerm.VT100.Translations: \
        <Key>BackSpace: string(0x7F)\n\
        <Key>Delete:    string("\033[3~")
您应该查看 xterm 的 man 手册以获取更多信息。

对于控制台,showkeys 程序的作用类似于 xev 对 X 的作用:它将转储您按下的键的控制台键码。将 showkeysdumpkeys 结合使用,后者将在标准输出上打印控制台键盘映射,您可以轻松修复键码和键符之间的不匹配。与 xmodmap 类似,loadkeys 可以修复单个关联,或加载全新的控制台键盘映射。使用它,您甚至可以更改与给定键符关联的字符串。如果您想记录这些更改,您将必须为控制台定义一个新的键盘映射(您应该查看系统键盘映射,通常位于/lib/kbd).