如何在vim插入模式下禁用前导键

ant*_*oyo 7 vim

我将leadervim 中的键映射到<Space>并设置timeoutlen为 250,以便有时间使用键的快捷方式leader

但是,这在插入模式下很烦人,因为当我点击空格时,在添加空格之前会有一个小的延迟(即使我没有在插入模式下使用前导键设置绑定)而且我有时会使用没有意义的快捷方式到。

有没有办法在插入模式下禁用前导键?

谢谢你的帮助。

rom*_*inl 12

领导者关键是没有特殊可言:如果你没有在它的工作原理任何映射使用它究竟像任何其他键。

可以将其<leader>视为某种常量,在使用时会自动扩展为其当前值。当 Vim 获取您的vimrc和 看到类似以下内容时:

nnoremap <leader>b :ls<CR>:b
Run Code Online (Sandbox Code Playgroud)

它将使用当前值mapleader并实际执行以下操作:

nnoremap <Space>b :ls<CR>:b
Run Code Online (Sandbox Code Playgroud)

导致您观察到延迟的原因是在插入模式映射开始时<Space>使用的(通过<leader>您的情况下的机制):Vim 只是稍等片刻,看看您是否真的想要插入<Space>或触发其中一个注册的插入模式映射以<Space>.

要查看哪些插入模式映射使用您的<leader>以及它们来自何处,请执行以下操作:

:verbose imap <leader>
Run Code Online (Sandbox Code Playgroud)

如果罪魁祸首是由插件定义的,请搜索其文档以查找取消映射的方法。

  • 一旦你找到了罪魁祸首,你可以创建一个文件夹`~/.vim/after/plugin` 并在其中放置一个名为 `unmap.vim` 的新文件。在此文件中,您可以放置​​取消映射命令。我的其中一个是 `iunmap &lt;Leader&gt;is`,它是来自 `a.vim` 的映射。 (5认同)