You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Neovim中UltiSnips插件导致可视模式左移(<)延迟的问题求助

解决UltiSnips导致Neovim可视模式<键延迟的问题

我之前也碰到过一模一样的问题,根源就是UltiSnips默认给可视模式(x模式)的<键加了一层自定义映射,额外的函数调用拖慢了操作响应速度。从你给出的:verbose map <输出能明确看到,插件把<键映射成了:call UltiSnips#SaveLastVisualSelection()<CR>gvs——这个步骤比默认的左移操作多了函数调用环节,所以产生了延迟;而>键没被插件修改,自然能立即生效。

给你两种可行的解决办法:

方法一:彻底禁用UltiSnips的可视模式默认映射

直接让插件放弃修改可视/选择模式下的按键,这样<键会完全恢复默认的左移功能,不会有任何延迟。在你的Neovim配置文件(比如init.vim或init.lua)里添加对应代码:

VimScript写法:

let g:UltiSnipsRemoveSelectModeMappings = 1

Lua写法:

vim.g.UltiSnipsRemoveSelectModeMappings = 1

这个配置会让UltiSnips停止修改可视模式的所有默认按键,除了<键,s键的默认映射也会被恢复。如果你本来就不用插件的s键代码片段扩展功能,这个方法最省心。

方法二:单独覆盖<键映射,保留插件其他功能

如果你还需要UltiSnips的其他可视模式映射(比如s键的代码片段扩展),可以只把<键恢复成默认行为,在配置里添加:

VimScript写法:

" 恢复可视模式下<键的默认左移操作
xmap < <
xnoremap < <

Lua写法:

vim.api.nvim_set_keymap('x', '<', '<', { noremap = true })

这样插件的其他映射会正常保留,但<键会直接执行默认的行左移,不会再触发插件的保存选区函数,延迟问题就能解决。

如果偶尔需要用UltiSnips保存可视选区的功能,你还可以手动把这个功能映射到其他闲置按键上,比如:

xmap <leader>us :call UltiSnips#SaveLastVisualSelection()<CR>gvs

用<leader>us来触发保存选区,完全不影响日常的<键操作。

内容的提问来源于stack exchange,提问作者Farzad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 12:18:12