终端以 Esc
开头的序列发送箭头键。在 Vim 中,有一个选项 'esckeys'
它允许以 Esc
开头的键工作在插入模式。它这样做是以牺牲实际的 Esc
为代价的。键立即响应,因为 Vim 不再知道您是否只是按 Esc
或开始拼写箭头键。
这是我希望能够在插入模式下执行的操作:
- 按箭头键并使光标朝该方向移动,然后
- 按
Esc
并立即退出插入模式。
我已经开始找到解决方案了。即使有:set noesckeys
,我仍然可以将键映射到 <Up>
像这样:
imap q <Up>
当然,q
不是使光标上升的好键。相反,我想将我的终端模拟器的箭头键映射到不以Esc
开头的东西。 (就像一些我永远不会输入的随机 Unicode 字符)然后 imap
这些是 Vim 中的说明。
问题是这样的:当我离开 Vim 时,我的箭头键将停止工作。现在只有 Vim 知道它们的意思。
我正在 iTerm2 内的 tmux 中工作。有没有一种方法可以使这样的绑定(bind)仅存在于一个 tmux Pane 中?或者让 Vim 通知 tmux 它应该在运行时使用疯狂的箭头键绑定(bind)?还有其他想法吗?
(顺便说一句,我很高兴自己在插入模式下根本不使用箭头键,但我与希望它们起作用的人结对,并且我希望成为一对有礼貌的搭档。)
最佳答案
您的问题到底是什么?你的方向键在 Vim 中能用吗?它们在 tmux 中工作吗?
我曾经在 Vim/tmux 中遇到过箭头键显示控制字符 ([A
,[B
...)] 的问题,我通过添加解决了这个问题
nnoremap <Esc>A <up>
nnoremap <Esc>B <down>
nnoremap <Esc>C <right>
nnoremap <Esc>D <left>
inoremap <Esc>A <up>
inoremap <Esc>B <down>
inoremap <Esc>C <right>
inoremap <Esc>D <left>
到我的~/.vimrc
。
关于vim - 在 Vim 中,如何使 Esc 和箭头键在插入模式下工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8813855/