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

Lua报错attempt to index a nil value,nvim-autopairs代码排查请求

解决nvim-autopairs配置的「attempt to index a nil value」错误

错误原因

你的代码存在语法错误——第一个自定义Rule的结尾多了一个多余的右括号,导致Lua解析时结构异常,进而触发「attempt to index a nil value」报错。具体错误位置:

Rule("$", "$", "tex")
  :with_move(cond.after_text("$"))
  :with_move(cond.before_text("$"))), -- 此处多了一个右括号

修正后的完整代码

package.path = package.path .. ';C:/Users/xyz/AppData/Roaming/luarocks/share/lua/5.4/?.lua;C:/Users/xyz/AppData/Roaming/luarocks/share/lua/5.4/?/init.lua'
package.cpath = package.cpath .. ';C:/Users/xyz/AppData/Roaming/luarocks/lib/lua/5.4/?.so'

-- 引入模块
local npairs = require('nvim-autopairs')
local Rule = require('nvim-autopairs.rule')
local cond = require('nvim-autopairs.conds')

-- 初始化nvim-autopairs
npairs.setup({})

-- 添加自定义规则
npairs.add_rules({
  Rule("$", "$", "tex")
    :with_move(cond.after_text("$"))
    :with_move(cond.before_text("$")), -- 移除多余的右括号
  Rule("$$", "$$", "tex")
    :with_move(cond.after_text("$$"))
    :with_move(cond.before_text("$$"))
})

额外排查建议

  • 若修正语法后仍报错,确认package.path和package.cpath是否准确指向nvim-autopairs的实际安装路径,保证模块能被正确加载。
  • 在Neovim中执行:checkhealth nvim-autopairs命令,查看插件健康状态,排查加载类问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 12:24:53