终端发送箭头键作为以Esc
开头的序列。在Vim中,有一个选项'esckeys'
,它允许以Esc
开头的键以插入模式工作。它会以实际的Esc
键为代价立即做出响应,因为Vim不再知道你是在按Esc
还是开始拼写箭头键。在Vim中,如何让Esc和箭头键在插入模式下工作?
这里是希望我能在插入模式做到:
- 按箭头键,并有光标在那个方向去,
- 按
Esc
离开插入模式立即。
我已经有了解决方案的开始。即使:set noesckeys
,我还可以一键映射到<Up>
像这样:
imap q <Up>
当然,q
是不是一个好键使光标上去。相反,我想将我的终端仿真器的箭头键映射到不以Esc
(如某些随机的Unicode字符,我永远不会键入)开始的东西,然后将imap
那些指向Vim中的方向。
问题是这样的:当我离开Vim时,我的箭头键将停止工作。只有Vim知道他们现在的意思。
我在iTerm2内部的tmux中工作。有没有办法像这样只能在一个tmux窗格中进行绑定?或者让Vim通知tmux它应该在运行时使用疯狂的箭头键绑定?任何其他想法?
(顺便说一句,我很乐意只是没有在所有插入模式使用箭头键,不过我与谁想到他们工作的人对,我想成为一个有礼貌的对。)
你使用什么终端?在gnome终端,xterm和OSX的终端中,我的箭头键的工作方式与在tmux内部运行vim的插入模式下所期望的完全相同。 – 2012-01-11 04:06:04
我正在使用iTerm2。箭头键可以工作,但只能用'set esckeys'。我澄清了这个问题。 – Peeja 2012-01-11 13:58:59