如何更快地纠正Vim拼写错误?

Tim*_*Tim 31 vim spell-checking

我通常的Vim工作流程是:

  • 在插入模式下,拼错了.

    Vim拼写

  • 按下^X s以获得一些建议.

    Vim屏幕

  • 按Esc接受第一个.

在此之后,我处于行中间的命令模式,而不是之前我所在位置的插入模式.我可以使用A,但只有当我在行尾打字时才有效.还有另一种方法吗?最理想的是,我想要一个命令,在不移动光标的情况下将最后一个错误纠正到第一个建议.

Jon*_*nas 28

对PDug的回答有所改进:为了使拼写修正与插入分开,可以使用:

imap <c-l> <c-g>u<Esc>[s1z=`]a<c-g>u
Run Code Online (Sandbox Code Playgroud)

<c-g>u插入撤消中断
其余部分是相同的.

这样,如果您不喜欢所选的修正,可以使用它来撤消它<Esc>u.如果没有撤消中断,这将撤消完整插入.请注意,映射结束时的撤消中断可确保在更正后添加的文本可以与更正本身分开撤消.

另外,我发现在插入和普通模式下将它映射到CTRL+ F(很容易到达)很方便,如下所示:

imap <c-f> <c-g>u<Esc>[s1z=`]a<c-g>u
nmap <c-f> [s1z=<c-o>
Run Code Online (Sandbox Code Playgroud)

这样,您可以快速修复最后一个错误(相对于光标).


PDu*_*Dug 24

这很好用:

imap ^L <Esc>[s1z=`]a
Run Code Online (Sandbox Code Playgroud)

[s移动到最后一个拼写错误
1z=选择第一个建议
`]移动到最后一个插入点
a附加文本


Pri*_*ash 9

我无法提供"最佳"解决方案(尽管我怀疑有一种方法).

但是,您可以使用gi在上次离开文件的位置输入插入模式.(help gi更有说服力地解释这一点).