Terminal Terminfo smkx和应用光标键与应用键盘
指定以下键序列:Terminal Terminfo smkx和应用光标键与应用键盘,terminal,tty,xterm,terminfo,termcap,Terminal,Tty,Xterm,Terminfo,Termcap,指定以下键序列: CSI ? 1 h → Application Cursor Keys (DECCKM) CSI ? 1 l → Normal Cursor Mode (DECOM) CSI ? 66 h → Application keypad (DECNKM) CSI ? 66 l → Numeric keypad (DECNKM) 并且具有以下条目: Variable: keypad_xmit Capname: smkx Termcap: ks Description: Put t
CSI ? 1 h → Application Cursor Keys (DECCKM)
CSI ? 1 l → Normal Cursor Mode (DECOM)
CSI ? 66 h → Application keypad (DECNKM)
CSI ? 66 l → Numeric keypad (DECNKM)
并且具有以下条目:
Variable: keypad_xmit
Capname: smkx
Termcap: ks
Description: Put terminal in "keypad-transmit" mode
但是xterm的terminfo实际上说的是
smkx=\E[?1h\E=
,这对我来说似乎有点混淆(smkx应该影响键盘,而不是光标键,对吧?)。我在这里遗漏了什么?看起来你遗漏了smkx
末尾的\E=
ESC = Application Keypad (DECKPAM).
ESC > Normal Keypad (DECKPNM).
也在XTerm控制序列页面上列出,您希望它们会影响键盘
我在这里发现了一个相关的问题:。行
CSI ? 1 h → Normal Cursor Mode (DECOM)
也许应该读一下
CSI ? 1 l → Normal Cursor Keys (DECCKM)
在smkx
和rmkx
中有两个转义序列,因为这些功能用于诅咒,即用于函数
ncurses的手册页面(与其他页面一样)没有明确说明这一点,但该功能适用于键盘上所有能够在正常模式和应用模式之间切换的特殊键。这是smkx
和rmkx
的一个众所周知的功能,例如在xterm FAQ中
键盘上的特殊键可能包括(取决于终端类型):
- 数字键盘(在电脑键盘的最右边)
- 编辑键盘(主键盘和数字键盘之间有6个键)
- 光标键
- 功能键(通常位于PC键盘顶部)
(没有功能键或编辑键盘)对其他两类有单独的转义序列。在VT220(由xterm模拟)中,编辑键盘的正常/应用模式是VT100 DECCKM的扩展(记录在中).DEC没有为功能键定义相应的功能;但是,如果有某个终端支持此功能,它可能会在
smkx
和rmkx
中使用,不过我不知道为什么DECCKM会出现在它前面。