终端将箭头键作为以 开头的序列发送Esc
。在 Vim 中,有一个选项'esckeys'
可以让以插入模式开始的键Esc
工作。它这样做的代价是实际Esc
键立即响应,因为 Vim 不再知道您是在按下Esc
还是开始拼写箭头键。
这是我希望能够在插入模式下执行的操作:
- 按箭头键并使光标朝该方向移动,然后
- 按下
Esc
并立即离开插入模式。
我已经有了解决方案的开始。即使使用:set noesckeys
,我仍然可以将键映射为<Up>
这样:
imap q <Up>
当然,q
让光标上去也不是一个好键。相反,我想将我的箭头键映射到我的终端仿真器到不以开头的东西Esc
(比如一些我永远不会输入的随机 Unicode 字符),然后映射imap
到 Vim 中的方向。
问题是:当我离开 Vim 时,我的箭头键将停止工作。现在只有 Vim 知道它们的意思。
我在 iTerm2 中的 tmux 中工作。有没有办法让这样的绑定只存在于一个 tmux 窗格中?或者让 Vim 通知 tmux 它应该在运行时使用疯狂的箭头键绑定?还有其他想法吗?
(顺便说一句,我很高兴自己根本不在插入模式下使用箭头键,但我与希望他们工作的人配对,我想成为有礼貌的一对。)