我的.vimrc
中有以下别名:
inoremap ^Z ^[[s1z=``a
这允许我在插入模式下按^Z
(C-z
)以跳回到最后一个拼写错误的单词并将其更正为第一个建议,然后跳回到光标之前的位置并重新输入插入模式。
但是,当单词的长度因校正而改变时,这不起作用。例如,使用[]
表示光标,在
C-z
A grea idea[]
将导致
A great ide[a]
但我希望它导致
A great idea[]
我怎样才能获得这种相对跳跃?
答案 0 :(得分:2)
在StackOverflow上找到一个较旧的链接,不知道它是否有同样的问题,否则,我会忍受它:How to correct vim spelling mistakes quicker?
<Esc>[s1z=`]a
[s转到最后一个拼写错误 1z =选择第一个建议 `]移动到最后一个插入点 附加文本
它还有两个更广泛的解决方案,也可能有效。
答案 1 :(得分:0)
不幸的是,标记不适用于其行中的文本更改,仅适用于上面添加/删除的行。但是,您可以使用gi
命令在最后编辑的位置重新进入插入模式来避免此问题。
inoremap <C-z> <Esc>[s1z=gi