首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Terminfo smkx和应用程序光标键对应用程序键盘

Terminfo smkx和应用程序光标键对应用程序键盘
EN

Stack Overflow用户
提问于 2014-01-17 00:15:13
回答 2查看 2.8K关注 0票数 6

XTerm控制序列指定以下密钥序列:

代码语言:javascript
复制
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)

Terminfo源格式有以下条目:

代码语言:javascript
复制
Variable: keypad_xmit
Capname: smkx
Termcap: ks
Description: Put terminal in "keypad-transmit" mode

但是xterm的终端实际上是smkx=\E[?1h\E=,这在我看来是混淆的(smkx应该会影响键盘,而不是光标键,对吧?)我在这里错过了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-21 23:22:20

看起来,在\E=的末尾,您缺少了该smkx

代码语言:javascript
复制
ESC =     Application Keypad (DECKPAM).
ESC >     Normal Keypad (DECKPNM).

列在“XTerm控制序列”页面上,您可能希望它们会影响键盘。

我在这里发现了一个相关的问题:vt100终端仿真器中的键盘传输方式

票数 3
EN

Stack Overflow用户

发布于 2015-04-02 09:01:52

线

代码语言:javascript
复制
CSI ? 1 h  → Normal Cursor Mode (DECOM)

可能应该读

代码语言:javascript
复制
CSI ? 1 l  → Normal Cursor Keys (DECCKM)

每个smkxrmkx中都有两个转义序列,因为这些功能用于诅咒,即用于keypad函数。

ncurses的手册页(像其他人一样)没有明确地这样说,但是该函数适用于键盘上所有能够在正常模式和应用程序模式之间切换的特殊键。这是smkxrmkx的一个众所周知的特性,例如在xterm 为什么我不能在shell中使用光标键?中。

键盘上的特殊键可以包括这些键(取决于终端的类型):

  • 数字键盘(在PC键盘的最右边)
  • 编辑键盘(主键盘和数字键盘之间的6个键)
  • 光标键
  • 函数键(通常位于PC键盘的顶部)

VT100 (它没有功能键或编辑键盘)对另外两个类别有单独的转义序列。在VT220 (由xterm模拟)中,编辑键盘的正常/应用模式是VT100 DECCKM的扩展(用XTerm控制序列描述)。DEC没有为函数键定义相应的特性;但是,如果有某个终端支持此功能,则很可能会在smkxrmkx中使用。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21175561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档