Answers:
此问题已在此处得到解答:在OSX上运行屏幕时,command + r在所有屏幕上的vim中弄乱了箭头键
复制的答案:
作为Vim的优秀拥护者,我一定会告诉您学习使用hjkl作为光标键。在研究该问题的过程中,我以为它神秘地修复了它,直到我意识到我正在使用hjkl而不是实际的箭头键进行测试。
无论如何,现在是一个真正的答案。
无需关闭所有屏幕并重新启动,您可以利用屏幕在终端之间移动的功能。按CTRL + A CTRL + D将屏幕与终端分离,然后运行屏幕-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 OA。为此发出的VT100控制代码是Esc [?1小时 Command + R发送的terminal reset命令将光标键重置为默认值。
拆卸并重新连接屏幕会导致ncurses重新控制终端,从而重新应用其喜欢的所有设置,因此这可能是使事情恢复正常的最可移植和最可靠的方法。
VT100控制代码:http : //www.handshake.de/infobase/dfue/prgrmmer/t322.htm