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
相关产品推荐
相关产品推荐

