【发布时间】:2015-05-07 04:12:51
【问题描述】:
我正在尝试重新映射 i/c/o/a 和朋友以始终记录宏。但是实际上使我进入插入模式的按键没有被记录(解释如下)。
例如,如果我们有:
nnoremap i qzi
inoremap <esc> <esc>q
理想情况下,这意味着当我进入插入模式 (i) 时,我也会开始录制以注册 z。当我离开 (<esc>) 时,我们停止录制。所以寄存器 z 应该具有重复我在插入模式下所做的操作所需的整个序列。
但是如果我尝试输入插入模式(例如,ihelloworld<esc>)然后检查:registers a,我会得到
---Registers---
"z helloworld^[
注意i 命令不包括在内——只有我在插入模式下键入的内容。
为什么会这样?我能做些什么来绕过它?
我还注意到,如果我只是正常输入qzihelloworld<esc>,z 寄存器确实包含ihelloworld<esc>(带有i)。
对于那些感兴趣的人,我正在尝试这样做,因为某些操作会破坏“重复上一个命令(句点键 .)”。例如,如果您使用<c-o> 或在插入模式下四处移动,. 将只重复插入模式的最后一段。特别是,我正在尝试为自动关闭插件找到解决方法
【问题讨论】:
-
它没有回答你的问题,但是有一个补丁可以解决你无法move the cursor without breaking undo的问题。