如何解决Neovim编辑配置文件时出现的‘Undefined global vim’警告?
解决Neovim lua_ls提示“Undefined global vim”的问题
你的配置里存在一处逻辑错误,导致Lua语言服务器没正确读取到全局变量的设置,直接修改配置即可解决:
修复后的完整配置
lspconfig.lua_ls.setup({ on_init = function(client) local path = client.workspace_folders[1].name -- 仅在目录无.luarc.json/.luarc.jsonc时应用自定义配置 if not vim.loop.fs_stat(path .. "/.luarc.json") and not vim.loop.fs_stat(path .. "/.luarc.jsonc") then -- 关键修复:合并目标为client.config.settings,而非嵌套的client.config.settings.Lua client.config.settings = vim.tbl_deep_extend( "force", client.config.settings, { Lua = { runtime = { -- 指定Neovim使用的LuaJIT版本 version = "LuaJIT" }, diagnostics = { -- 将vim标记为合法全局变量,消除警告 globals = { 'vim' } }, workspace = { -- 让语言服务器识别Neovim运行时文件 library = { vim.env.VIMRUNTIME } -- 若仍有问题,可替换为下面一行(会增加服务器启动耗时) -- library = vim.api.nvim_get_runtime_file("", true) } } } ) client.notify("workspace/didChangeConfiguration", { settings = client.config.settings }) end return true end })
额外检查点
- 确保你的Neovim配置目录下没有
.luarc.json或.luarc.jsonc文件,否则上述自定义配置不会触发。 - 重启Neovim后,打开Lua配置文件,“Undefined global vim”警告即可消除。
内容的提问来源于stack exchange,提问作者CoolPlayLin
相关产品推荐
相关产品推荐

