XTerm 控制序列 http://invisible-island.net/xterm/ctlseqs/ctlseqs.html指定以下按键序列:
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)
and the Terminfo 源格式 http://pubs.opengroup.org/onlinepubs/7990989799/xcurses/terminfo.html有以下条目:
Variable: keypad_xmit
Capname: smkx
Termcap: ks
Description: Put terminal in "keypad-transmit" mode
但 xterm 的 terminfo 实际上说smkx=\E[?1h\E=
,这对我来说似乎很混乱(smkx 应该影响键盘,而不是光标键,对吧?)。我在这里缺少什么?
The line
CSI ? 1 h → Normal Cursor Mode (DECOM)
可能应该读
CSI ? 1 l → Normal Cursor Keys (DECCKM)
每个都有两个转义序列smkx
and rmkx
因为这些功能用于诅咒,即keypad http://invisible-island.net/ncurses/man/curs_inopts.3x.html功能。
ncurses 的手册页(像其他手册页一样)没有明确说明,但该函数适用于所有特殊键在键盘上可以切换normal and 应用模式。这是众所周知的一个特点smkx
and rmkx
,例如 xterm FAQ 中的例子为什么我不能在(任何)shell 中使用光标键? http://invisible-island.net/xterm/xterm.faq.html#xterm_arrows.
键盘上的特殊键可能包括这些(取决于终端的类型):
- 数字键盘(位于 PC 键盘的最右侧)
- 编辑键盘(主键盘和数字键盘之间的6个键)
- 光标键
- 功能键(通常位于 PC 键盘的顶部)
The VT100 http://vt100.net/docs/vt100-ug/chapter3.html(没有功能键或编辑键盘)对于其他两个类别有单独的转义序列。在VT220(由xterm模拟)中,编辑键盘的正常/应用模式是VT100 DECCKM的扩展,(记录在XTerm 控制序列 http://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-PC-Style-Function-Keys)。 DEC没有为功能键定义相应的特性;但是,如果有一些终端支持此功能,它可能会用于smkx
and rmkx
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)