为什么我的 neovim 插件没有加载,尽管我懒惰地告诉我它已经加载了

Dav*_*vid 6 neovim neovim-plugin

我刚刚从 Vim-Plug 切换到 Lazy。我想这应该不会太复杂。事实证明我完全错了。我已经花了几个小时试图弄清楚为什么有些插件无法加载。

我不想粘贴整个配置(整个配置很大),但一些相关部分在惰性设置中:

require ('lazy').setup ({
...
    {
        'neovim/nvim-lspconfig',
        config = function () require 'config.lsp-config-conf' end
    },
    {
        'p00f/clangd_extensions.nvim', -- !! THIS DOES NOT GET LOADED !!
        dependencies = {'neovim/nvim-lspconfig'},
        config = function () require 'config.clangd-extensions' end,
    },
...
})
Run Code Online (Sandbox Code Playgroud)

我的设置使用 Vim-Plug 工作了相当长的一段时间 - 这些配置没有任何变化,如果我切换回 Vim-Plug (我在另一个分支中执行此操作,以便我可以来回跳转),一切都会再次正常。

我完全困惑了 - 我已经从头到尾阅读了快速入门和简介,绝对没有任何问题指出我的问题。

有谁知道从哪里开始,为什么插件clangd_extensions未加载/未激活?

我什至刚刚意识到我的 lsp 配置也不起作用,我的 lsp 配置有非常尴尬的不同行为on_attach- 似乎部分功能未执行(我设置的键盘映射工作但vim.lsp.buf.document_highlight不起作用 - 或者 lsp 行为不同 - 取决于包管理器?)。准确地说:当我将存储库切换回 Vim-Plug 时,这种行为不可重现,一切都按预期进行。一旦我使用懒惰的东西就不再起作用了。

当我进入时,:Lazy我可以看到列出的所有插件。我可以看到每个插件加载所消耗的时间 - 但插件(或只是一些)没有加载。例如clangd_extensions定义了一个命令:ClangdSwitchSourceHeader,当我使用lazy时该命令不存在。当我用 Vim-Plug 加载插件时它确实存在。

如果我手动点击 ,它也不会改变任何东西:Lazy load clangd_extensions.nvim,什么也不会发生。

或者只是该插件与惰性不兼容?...或者我必须在之后做些什么setup

我已经仔细阅读了文档,除了设置之外我找不到任何其他需要的提示。我尝试将属性设置lazy为 false,但我尝试的任何方法都没有任何显着效果。

Sad*_*ifi 7

    \n
  • 使用lazy.nvim 管理nvim 插件的更好/优雅/首选的方法是通过~/.config/lua/plugins目录和下载,在自己的文件中配置每个插件并将该文件的内容作为lua表返回。
  • \n
\n

例如:

\n
return {\n  "lukas-reineke/indent-blankline.nvim",\n  config = function ()\n    require("indent_blankline").setup {\n      char = "\xe2\x96\x8f",\n      show_trailing_blankline_indent = false,\n      show_first_indent_level = true,\n      use_treesitter = true,\n      show_current_context = false,\n      buftype_exclude = { "terminal", "nofile" },\n      filetype_exclude = {\n        "help",\n        "packer",\n        "NvimTree",\n      },\n    }\n  end\n}\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  • 现在第二个问题可能是懒惰如何知道该~/.config/lua/plugins目录包含所有插件,因此您可以在下面的文件中配置懒惰~/.config/lua/core/lazy-setup.lua并放置这样的配置。
  • \n
\n
require("lazy").setup("plugins", {}) -- here you are telling lazy to look for a plugins dir and in {} this lua table you put all configuration related to lazy.\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  • 之后需要像这样输入lazy-setup文件。~/.config/nvim/init.lua
  • \n
\n
require "lazy-setup"\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  • 为了更多的理解,你可以参考我的nvim config
  • \n
\n