如何在 vim 拼写检查中使 z= 看起来像 ctrl-x s

Wan*_*Fox 6 linux vim configuration

因此,在插入模式下,如果您点击ctrl-x s在拼写错误的单词上,您会得到一个格式良好的拼写建议弹出菜单。这太棒了。

然而,普通模式下的类似命令 (z=) 给出了一个平淡的纯文本列表,它占据了整个屏幕。

我通过在我的 .vimrc 中添加以下键绑定部分解决了这个问题:

nnoremap <Leader>s ea<C-X><C-S>

这工作得很好,在正常模式下点击 s 给了我同样的下拉......唯一的问题是我现在在一切结束时都处于插入模式。有什么方法可以让下拉样式选择并在替换完成后以正常模式结束?

Ben*_*Ben 3

你不能直接这样做。您正在考虑的弹出菜单专门称为“插入模式完成”。

但是,通过映射进入插入模式并开始完成的键,您已经完成了一半。现在您需要做的就是映射一个选择条目的键(如“enter”键)以退出插入模式。

您应该测试映射中的返回值pumvisible(),以防止它在您不需要时触发。示例(来自评论):

inoremap <expr> <CR> pumvisible() ? "\<C-y><Esc>" : "\<CR>"
Run Code Online (Sandbox Code Playgroud)

也许您还可以设置一个变量或其他东西,或者使用您不会使用的键来结束实际的插入模式完成。

  • 更正...更好的方法`inoremap &lt;expr&gt; &lt;CR&gt; pumvisible() ?"\&lt;Cy&gt;&lt;Esc&gt;" : "\&lt;CR&gt;"` (2认同)