Keyboard-Layout

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

  • April 11, 2016

我正在研究 RHEL 6.4。

在我在 RHEL 5.3 上執行的舊系統中,Home映射到^[[1~End映射到^[[4~.

在新系統中,Home被映射到^[[H並被End映射到^[[F,這在我的應用程序中導致了一些不良行為。

請告訴我如何改變這個?

您將需要修改xterm 的X 資源中的鍵盤映射。

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

雖然您可以使用資源更改密鑰translations,但也有優缺點。如果您使用該資源,它本身會xterm提供幾個其他資源(包括一些可以通過菜單條目切換的資源)。如果您使用該資源,則無法通過菜單條目切換按鍵。

HomeEnd鍵可以在“PC 風格” ^[[H“VT220 風格”之間切換,並使用^[[F菜單條目。 ^[[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 鍵?*.

引用自:https://unix.stackexchange.com/questions/85656