Neovim 配置lazy.lua 文件在将文件移动到其父目录时出错

问题描述 投票:0回答:1

我的

lazy.lua
文件位于
.config/nvim/lua/{name}/
目录中,然后为了构建我的配置,我将其移动到
.config/nvim/lua
。之后,我在一些惰性文件中遇到了一些基本上与 nil 值有关的错误。 所有这些错误都源于
require('lazy').setup('plugins')

一旦我将

lazy.lua
移回 .
config/nvim/lua/{name}/ directory
,这些错误就会消失。 我显然更新了
init.lua
文件中的所有导入。我还尝试通过
sudo rm ~/.local/share/nvim/lazy ~/.local/state/nvim/lazy -rf
重新安装惰性,还删除了
lazy-lock.json
文件,但除了将
lazy.lua
移动到
.config/nvim/lua/{name}/
目录之外,没有任何效果。我什至将 neovim 更新到最新版本。

这是我的

lazy.lua
文件:

-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
  local lazyrepo = "https://github.com/folke/lazy.nvim.git"
  print('installing lazy...')
  local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
  if vim.v.shell_error ~= 0 then
    vim.api.nvim_echo({
      { "Failed to clone lazy.nvim:\n", "ErrorMsg" },
      { out, "WarningMsg" },
      { "\nPress any key to exit..." },
    }, true, {})
    vim.fn.getchar()
    os.exit(1)
  end
end
vim.opt.rtp:prepend(lazypath)

print('lazy installed')

-- Make sure to setup `mapleader` and `maplocalleader` before
-- loading lazy.nvim so that mappings are correct.
-- This is also a good place to setup other settings (vim.opt)
vim.g.mapleader = " "
vim.g.maplocalleader = "\\"

-- Setup lazy.nvim
require("lazy").setup('plugins')

以下是错误:-

旧版本0.9.4

错误无法为“lazy”插件运行健康检查。例外: 函数 health#check,第 25 行 Vim(eval):E5108: 执行 lua 时出错 ...al/share/nvim/lazy/lazy.nvim/lua/lazy/manage/process.lua:52:尝试索引 upvalue 'uv' (>nil 值) 堆栈回溯: .local/share/nvim/lazy/lazy.nvim/lua/lazy/manage/process.lua:52:在函数“spawn”中 .local/share/nvim/lazy/lazy.nvim/lua/lazy/manage/process.lua:234:在函数“exec”中 .local/share/nvim/lazy/lazy.nvim/lua/lazy/health.lua:40:在函数“have”中 .local/share/nvim/lazy/lazy.nvim/lua/lazy/health.lua:72:在函数“检查”中 [字符串“luaeval()”]:1:在主块中

最新版本0.11.0

lazy.nvim {lazy.nvim} 版本 11.14.1 好的 {git} 版本 2.34.1 好的,其他包管理器没有找到现有包

  • 确定未找到 packer_compiled.lua 错误 未加载插件。您是否忘记运行 require("lazy").设置()?

Luarocks 错误无法运行“惰性”插件的健康检查。例外: .local/share/nvim/lazy/lazy.nvim/lua/lazy/health.lua:132:尝试索引字段“rocks”(零值)

lua path config lazy-evaluation neovim
1个回答
0
投票

首先,“rocks”检查运行状况错误可能是因为您的系统上没有安装 LuaRocks。 LuaRocks 是 lazy.nvim

要求
,以便它可以安装 rockspecs。您可以安装它,也可以通过取消注释下面的行
lazy.nvim
来禁用它在
rocks = { enabled = false },
中的使用。

其次,通过将

lazy.lua
~/.config/nvim/lua/config
移动到
~/.config/nvim/lua
,您无意中在
lazy.lua
文件和惰性模块
~/.local/share/nvim/lazy
之间造成了名称冲突。

解决方案是将

~/.config/nvim/lua/lazy.lua
重命名为
lazy.lua
以外的其他名称,或者像您之前所做的那样将其放入某个
{name}
目录中。将文件重命名为简单易读的名称,例如
lazy-config.lua
就足够了。

更具体地说,假设您想要以下结构化设置,则需要下面列出的三件事。

~/.config/nvim
├── init.lua
└── lua
    ├── lazy-config.lua
    └── plugins
        ├── spec1.lua
        ├── **
        └── spec2.lua
  1. 确保
    ~/.config/nvim/init.lua
    文件存在,并调用以下函数:
require("lazy-config")
  1. 确保
    ~/.config/nvim/lua
    目录存在,并且在该目录中存在
    lazy-config.lua
    文件,其中至少包含以下代码:
-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
  local lazyrepo = "https://github.com/folke/lazy.nvim.git"
  local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
  if vim.v.shell_error ~= 0 then
    vim.api.nvim_echo({
      { "Failed to clone lazy.nvim:\n", "ErrorMsg" },
      { out, "WarningMsg" },
      { "\nPress any key to exit..." },
    }, true, {})
    vim.fn.getchar()
    os.exit(1)
  end
end
vim.opt.rtp:prepend(lazypath)

-- Make sure to setup `mapleader` and `maplocalleader` before
-- loading lazy.nvim so that mappings are correct.
-- This is also a good place to setup other settings (vim.opt)
vim.g.mapleader = " "
vim.g.maplocalleader = "\\"

-- Setup lazy.nvim
require("lazy").setup({
  spec = {
    -- import your plugins
    { import = "plugins" },
  },
  -- Configure any other settings here. See the documentation (https://lazy.folke.io/configuration) for more details.
  -- colorscheme that will be used when installing plugins.
  install = { colorscheme = { "habamax" } },
  -- automatically check for plugin updates
  checker = { enabled = true },
  -- disable luarocks if it is not available on system
  -- rocks = { enabled = false },
})
  1. 确保目录
    ~/.config/nvim/plugins
    存在,该目录中的每个文件都包含您要安装的插件的规范,通过表格返回。例如,要安装 lualine,您需要在
    lualine.lua
    中创建一个
    ~/.config/nvim/plugins
    文件,其中包含以下内容:
return { -- Status line for Neovim
    "nvim-lualine/lualine.nvim",
    opts = {
        options = {
            icons_enabled = false,
            component_separators = "|",
            section_separators = "",
        },
        sections = {
            lualine_x = {
                "encoding",
                "filetype",
            },
        lualine_c = {
                { "filename", path = 3 },
            },
        },
    },
}

此处
了解有关lazy.nvim安装的更多信息。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.