如何更改 XTERM 中 HOME 和 END 键的键映射?

如何更改 XTERM 中 HOME 和 END 键的键映射?

我正在开发 RHEL 6.4。

在我在 RHEL 5.3 上运行的旧系统中,Home被映射到^[[1~并被End映射到^[[4~.

在新系统中,Home被映射到^[[H并被End映射到^[[F,这在我的应用程序中导致了一些不良行为。

请告诉我如何改变这个?

答案1

您将需要修改键位图在 xterm 中X资源

*XTerm*VT100.translations:      #override \n\
        None<Key>Home: string(0x1b) string("[1~") \n\
        None<Key>End: string(0x1b) string("[4~") \n

答案2

虽然您可以使用资源更改密钥translations,但也有优点/缺点。如果你这样做不是使用该资源,其本身xterm提供了几个其他资源(包括一些可以通过菜单条目切换的资源)。如果您使用该资源,则无法通过菜单项切换按键。

HomeEnd可以在之间切换“PC风格” ^[[H^[[F“VT220式” ^[[1~^[[4~使用VT220 Keyboard菜单条目。

除了菜单项之外,还可以使用控制序列来完成相同的切换:

CSI ? Pm h
          DEC Private Mode Set (DECSET).
            Ps = 1 0 6 1  -> Set VT220 keyboard emulation.
CSI ? Pm l
          DEC Private Mode Reset (DECRST).
            Ps = 1 0 6 1  -> Reset keyboard emulation to Sun/PC style.

您可以在脚本中使用它:

printf '\033[?1061h

将键盘类型更改为 VT220。

顺便说一句,这些功能早于 RHEL5。 Red Hat 用于覆盖 xterm 资源,如常见问题解答中所述为什么我无法使用 home/end 键?

相关内容