Answers:
作为Vim的一位优秀小拥护者,我一定会告诉您学习使用hjkl作为光标键。在研究该问题的过程中,我以为它神秘地修复了它,直到我意识到我正在使用hjkl而不是实际的箭头键进行测试。
无论如何,现在是一个真正的答案。
无需关闭所有屏幕并重新启动,您可以利用屏幕在终端之间移动的功能。点击CTRL+A
CTRL+D
即可从终端上分离屏幕,然后运行screen -D -R
以重新连接。这样可以使箭头键再次起作用。
如果您不在屏幕上,而只是在Vim中,则可以CTRL+Z
键入fg
相同的效果。
您也可以解决Vim中的光标键问题,但是重设可能更改了其他终端选项,因此如上所述进行操作更安全,以免出现其他随机显示/键盘问题。如果您仍然想要重新映射,则它们是:
map <Esc>[A <Up>
map <Esc>[B <Down>
map <Esc>[C <Right>
map <Esc>[D <Left>
肮脏的细节:
Vim和screen都使用ncurses库来管理终端。当ncurses控制与VT100兼容的终端时,要做的事情之一就是将箭头键切换到“应用程序模式”,这会更改它们发出的代码。例如,向上箭头键从更改Esc
[
A
为Esc
O
A
。为此发出的VT100控制代码是Esc
[
?
1
h
。Command + R发送的terminal reset命令将光标键重置为默认值。
拆卸并重新连接屏幕会导致ncurses重新控制终端,从而重新应用其喜欢的所有设置,因此这可能是使事情恢复正常的最可移植和最可靠的方法。
VT100控制代码:http : //www.handshake.de/infobase/dfue/prgrmmer/t322.htm