赞
踩
当使用LuaSnip生成片段时,即使切换过VIM模式,输入模式下的Tab按键仍然会导致光标跳转到Snippet的片段占位符处,导致光标“随机跳转”的问题。
这是因为触发代码片段之后,LauSnip会一直维持一个记录占位符跳转的Session,这个Session在当前Buffer会一直持续到占位符结束。
Github上的这篇Issue中,lawrence-laz和pogopaule给出了通过autocmd
对VIM/NeoVIM配置文件的问题修复方法,这里展示后者使用回调函数实现的更为简明的方法:
vim.api.nvim_create_autocmd('ModeChanged', {
pattern = '*',
callback = function()
if ((vim.v.event.old_mode == 's' and vim.v.event.new_mode == 'n') or vim.v.event.old_mode == 'i')
and require('luasnip').session.current_nodes[vim.api.nvim_get_current_buf()]
and not require('luasnip').session.jump_active
then
require('luasnip').unlink_current()
end
end
})
在保存配置之后,重新启动NeoVIM即可生效。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。