时机。 如果字符在足够短的时间内到达,则它们不太可能是单独输入的。 在vim中,选项esckeys、ttimeout和ttimeoutlen决定是否等待转义序列完成以及等待多长时间。在传统VI中,转义只是一个转义,箭头键是无用的。 你可以通过在vim中快速输入EscOA或Esc[A来测试这一点。如果你的速度足够快,并且你的终端设置不是太奇怪,其中一个将充当向上箭头键。慢慢地输入同样的东西,它会做一些不同的事情。做:set noesckeys,它就永远不会像箭头键那样工作(即使当你实际按下箭头键时)--如果你想让对转义键的响应是即时的,这是你必须付出的代价。 这个实验可以用其他序列来完成,比如你的^[[3~,但是3个字符的序列更容易输入。 curses库在解释终端输入时也使用了超时,这里有一个相关的问题:How can I know that the user hit the ESC key in a console with ncurses (Linux)?
1条答案
按热度按时间zphenhs41#
时机。
如果字符在足够短的时间内到达,则它们不太可能是单独输入的。
在vim中,选项
esckeys
、ttimeout
和ttimeoutlen
决定是否等待转义序列完成以及等待多长时间。在传统VI中,转义只是一个转义,箭头键是无用的。你可以通过在vim中快速输入EscOA或Esc[A来测试这一点。如果你的速度足够快,并且你的终端设置不是太奇怪,其中一个将充当向上箭头键。慢慢地输入同样的东西,它会做一些不同的事情。做
:set noesckeys
,它就永远不会像箭头键那样工作(即使当你实际按下箭头键时)--如果你想让对转义键的响应是即时的,这是你必须付出的代价。这个实验可以用其他序列来完成,比如你的
^[[3~
,但是3个字符的序列更容易输入。curses库在解释终端输入时也使用了超时,这里有一个相关的问题:How can I know that the user hit the ESC key in a console with ncurses (Linux)?