vi中的数字小键盘键可插入字母而不是数字


8

我是vi的新手。实际上,我只是用它来修改小的文本文件。我认为数字键盘有一个严重且不寻常的问题,如下所示:我写vi IN并按Enter。这使我可以访问名为的文件IN。然后,我使用箭头键(或hjkl)在文件中移动光标。然后我按i激活insert mode并编写。问题出在这里:数字小键盘无法正常工作,因为pqrstuvwxyl当我按0123456789+,.-*/=仍然可以工作)时出现提示。


1
为什么我的问题迁移到这里?问题不是关于Mac,而是关于Vi。实际上,正如我所说,数字小键盘不能仅在Vi中工作。相反,它一直在终端或其他应用程序中工作。
恩里科·玛丽亚·德·安吉利斯

Answers:


8

据我了解,VT100终端的数字小键盘有两种可能的模式:普通数字小键盘模式应用程序小键盘模式。后者的键盘按键不发送数字,而是转义序列。例如,“ 1”键发送<ESC>[Oq,“ 2”键发送<ESC>[Or,在屏幕上只有字母qr可见。这些是程序(主机)可以将其解释为某些功能的命令的控制序列。因此,在此模式下,键盘键实际上用作附加功能键。

根据VT100终端标准,程序(主机)可以“询问”终端以将小键盘切换到应用程序模式。(可以通过向终端发送特定的控制序列来完成此操作。)Vi和Vim可以做到这一点。模式开关不是通用的,而是基于程序的程序:它仅在请求它的程序中处于活动状态。在包括外壳程序在内的其他程序中,键盘仍处于数字模式。OS X的Terminal.app中的默认设置是允许程序切换到应用程序模式,这是您现在通过取消选中“允许VT100应用程序键盘模式”选项禁用的功能。(顺便说一句:在OS X 10.7中,此选项标记为“严格的VT100键盘行为”。)

也可以看看:

http://www.vt100.net/docs/vt100-ug/chapter3.html https://ttssh2.osdn.jp/manual/en/usage/tips/appkeypad.html


也许我对你写的内容没有理解。当我在终端中时,键盘可以正常工作(插入数字)。“奇怪”行为仅在Vi的插入模式下发生。
恩里科·玛丽亚·德·安吉利斯

1
模式开关仅在请求它的程序中处于活动状态(在这种情况下为vi)。因此,键盘在包括外壳程序在内的其他程序中均能正常工作。我已经将这个说明添加到了答案中。
Dictionarics Anonymous

9

我自己解决了问题,但是我想知道为什么我的解决方案有效。我取消选择了下图中红色箭头指示的选项, 输入 这是意大利语,但此处是同一窗口的英语版本

但是我不记得启用了它,但是确实存在。


该编辑具有误导性。“ 我不记得启用此功能 ”是错误的;相反,我确定我永远不会在此窗口中启用它
恩里科·玛丽亚·德·安吉利斯

此外,有一部分内容我要求有人告诉我为什么该选项会产生这种后果,是否还有其他后果,以及是否有可能由于错字的副作用而启用了该选项。
恩里科·玛丽亚·德·安吉利斯

AFAIK该选项默认情况下处于启用状态(至少在我的Mac上也已启用,而且我很确定自己没有故意启用它)。至于您的第二条评论:请参阅编辑历史记录中有关隐藏在答案中的后续问题的注释。
nohillside

1
参考是我一直使用数字键盘在Vi中插入数字。不管怎样,也许该选项可能已被从优胜美地升级到埃尔卡皮坦激活(还是我敢肯定,我用数字键盘插入号升级)。
恩里科·玛丽亚·德·安吉利斯

1
默认情况下它是打开的。从OS X 10.11 El Capitan开始,默认情况下处于禁用状态。Vim启用了应用程序键盘模式(DECKPAM),但未提供任何默认映射。我还无法发现Vim为什么这样做。我认为它应该提供默认映射,或者默认情况下不启用DECKPAM。
克里斯·佩奇
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.