首页 > 其他分享 >VIM/NeoVIM:解决LuaSnip下Tab按键跳转冲突问题

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

时间:2024-01-13 17:24:20浏览次数:22  
标签:NeoVIM LuaSnip 跳转 vim mode luasnip VIM

主要现象

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

发生原因

这是因为触发代码片段之后,LauSnip会一直维持一个记录占位符跳转的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即可生效。

标签:NeoVIM,LuaSnip,跳转,vim,mode,luasnip,VIM
From: https://www.cnblogs.com/KLangHu/p/17962610

相关文章

  • 如何在uniapp中使用路由进行页面跳转
    Laravel是一个流行的PHP框架,它具有出色的可测试性,可以帮助开发人员在更短的时间内编写可靠的代码。但是,即使使用了这个框架,也可能会出现测试覆盖率较低的情况。测试覆盖率是指代码中已由测试案例覆盖的部分比例。测试覆盖率越高,代码质量越高。在本文中,我们将分享几种技巧,帮助您提......
  • uniapp中如何实现路由跳转动画
    Laravel是一个流行的PHP框架,它具有出色的可测试性,可以帮助开发人员在更短的时间内编写可靠的代码。但是,即使使用了这个框架,也可能会出现测试覆盖率较低的情况。测试覆盖率是指代码中已由测试案例覆盖的部分比例。测试覆盖率越高,代码质量越高。在本文中,我们将分享几种技巧,帮助您提......
  • nginx 根据端口进行判断进行自动跳转
    listen80;listen443ssl;server_namexxxxxx.org.cnwww.xxxxxx.org.cn;large_client_header_buffers41m;fastcgi_intercept_errorson;if($server_port=443){#重定向到80端口rewrite^/(.*)$http://www.xx......
  • Matlab中常用快捷键:注释、自动对齐、跳转指定行、设置标签等
    Matlab中有11个常用快捷键,可以大大提高编程效率,并且可以节省时间。 1.注释:注释是指在程序中添加注释,以便于以后更好地理解程序的含义。快捷键为Ctrl+R,点击后可以将当前行变为注释,再次点击可以取消注释。2.自动对齐:自动对齐是指将程序中的代码按照一定的格式进行排列,使得......
  • 交易猫闲鱼链接源码跳转APP+八合一完整源码 转转闲鱼链接源码二手闲置源码
    高仿交易猫转转闲鱼源码搭建教程:添加网站→上传源码→解压源码→导入数据库→修改数据库路径config/Conn.php不用设置什么伪静态源码下载:转转闲鱼交易猫三合一链接源码搭建教程:导入数据库,修改数据库config/conn.php1、一键生成链接卡框分享,效果逼真2、使用简单,支持自定义订单内......
  • loopy登录注册模板(可跳转其他页面)
    登录页面账户登入扫码登入账号密码记住密码登录注册</div></form></div><scriptsrc="./js/login.js"></script>......
  • 【Azure APIM】在APIM中实现JWT验证不通过时跳转到Azure登录页面
    问题描述在APIM中配置JWT策略,验证JWT,如果认证失败,则跳转到AzureEntraID的Login页面。 问题解答要实现JWT验证失败后,跳转到AzureEntraID的Login页面。需要使用到两种策略:validate-jwt:https://learn.microsoft.com/en-us/azure/api-management/validate-jwt-policyretu......
  • 跳转链接 下载链接 自定义处理 XMLHttpRequest 对象来发起 HTTP 请求
    import{saveAs}from'file-saver';/***@description:JavaScript动态生成的a标签进行下载,*********可以使用XMLHttpRequest对象来发起HTTP请求,并在请求完成后获取响应数据*@param{*}url请求地址*@param{*}isOpenNew是否打开新标签页*......
  • idea flutter dart 代码不跳转 analyze 不起作用
    查看本地dartwheredart/opt/homebrew/bin/dart/Users/jimogangdan/soft/flutter/bin/dart两个版本不一样/opt/homebrew/bin/dart--versionDartSDKversion:3.1.3(stable)(TueSep2614:25:132023+0000)on"macos_arm64"/Users/jimogangdan/soft/flutter/b......
  • WPF中实现页面跳转
    `WPF中实现页面跳转WPF是WindowsPresentationFoundation的缩写,是微软推出的一种用于创建桌面应用程序的技术。WPF中有一个重要的概念就是页面(Page),它可以让我们在一个窗口(Window)中显示不同的内容,实现类似于网页浏览器的效果。页面跳转就是指从一个页面切换到另一个页面的过程。......