如果我选择一些文本后按 ESC 退出可视模式,则在取消选择文本并返回正常模式之前会有明显的延迟(即使我只选择了 1-2 个字符)。可以避免这种延迟吗?
答案1
这可能是由于映射到某些附加功能而导致的。例如,我使用 tabbar 插件,它将 0-9 映射到数字缓冲区。每当将某个键映射到此类附加功能时,vim 都会在按下该键后等待几秒钟,以查看您是否要按任何其他键。
要查看是否有任何其他映射,请运行并在第一列中:map
查找。当不带任何参数运行时,将列出所有自定义映射。如果您想在可视模式下仅列出映射,请运行。<Esc>
:map
:vmap
如果确实有其他映射,除了删除映射之外,我不知道还有什么方法可以删除暂停。暂停是必要的,这样 vim 才能清楚地知道您希望它采取什么操作。
答案2
我没有全局或可视化模式绑定到 <ESC> 的映射(调用 :verbose vmap <ESC> 没有结果),但退出可视化模式时仍然有明显的延迟。即使在没有 vimrc 的全新安装上,延迟也存在。使用 <Cc> 可以无延迟地退出可视化模式。
由于我不喜欢按 <Cc> 退出任何模式,因此我目前在可视模式下将 <ESC> 映射到 <Cc>。这样使用 <ESC> 即可退出可视模式,没有任何延迟。
:vmap <ESC> <C-c>
或者将以下行放入你的 vimrc 中
vnoremap <ESC> <C-c>
如果您确实有与 <ESC> 绑定的全局或视觉模式映射,则这将不起作用。
答案3
您仍然可以使用CTRL+C退出可视模式,这样可以避免延迟。