VIM/NeoVIM:解决LuaSnip下Tab按键跳转冲突问题

主要现象

当使用LuaSnip生成片段时,即使切换过VIM模式,输入模式下的Tab按键仍然会导致光标跳转到Snippet的片段占位符处,导致光标“随机跳转”的问题。

发生原因

这是因为触发代码片段之后,LuaSnip会一直维持一个记录占位符跳转的Session,这个Session在当前Buffer会一直持续到占位符结束。

修复方法

Github上的这篇Issue中,lawrence-lazpogopaule给出了通过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即可生效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您在执行vim的时候出现了"vim/etc/vim/vimrc: command not found"的错误信息。这个错误通常是由于vim配置文件(vimrc)中存在语法错误或者文件路径错误导致的。根据您提供的引用内容,可以看到出现了几个与vim配置文件相关的错误。 首先,在引用中,执行了"source ~/.vimrc"后出现了一系列的错误信息,其中包括了"/etc/vim/vimrc: line 21: syntax error near unexpected token `"syntax"'"的错误。这个错误提示表明在vim配置文件的第21行附近存在一个语法错误,可能是由于缺少或者多余的引号导致的错误。 另外,在引用中,执行了"silent! if plug#begin('~/.vim/plugged')"后同样出现了语法错误,错误信息为"/root/.vimrc: line 13: syntax error near unexpected token `('"。这个错误提示表明在vim配置文件的第13行附近存在一个语法错误,可能是由于缺少或者多余的括号导致的错误。 综上所述,您在执行vim时遇到的"vim/etc/vim/vimrc: command not found"的错误是由于vim配置文件中存在语法错误导致的。您需要检查vim配置文件中的语法并进行修正,确保所有的引号和括号都是成对出现的,并且没有多余或者缺少的情况。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【解决】source ~/.vimrc出错bash: /etc/vim/vimrc: line 21: syntax error near unexpected token `...](https://blog.csdn.net/u25th_engineer/article/details/100126190)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值