Terminfo smkx 和应用程序光标键与应用程序键盘

2023-12-24

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(使用前将#替换为@)

Terminfo smkx 和应用程序光标键与应用程序键盘 的相关文章

随机推荐