Bootstrap

lazyvim的nvim文件夹详解

 🌈hello,你好鸭,我是Ethan,西安电子科技大学大三在读,很高兴你能来阅读。

✔️目前博客主要更新Java系列、项目案例、计算机必学四件套等。
🏃人生之义,在于追求,不在成败,勤通大道。加油呀!

🔥个人主页:Ethan Yankang
🔥推荐:史上最强八股文 || 一分钟看完我的上千篇博客

🔥温馨提示:划到文末发现专栏彩蛋   点击这里直接传送

🔥本篇概览:必知必会工具集|| 详细讲解了nvim的使用。🌈⭕🔥


【计算机领域一切迷惑的源头都是基本概念的模糊,算法除外】


🌈序言

手不离盘乃我长久之志也,此关必过。今日得此nvim之上古神兽辅助,应用此学之习之,而长久不可懈怠。


1. 高级黑客质感必备

1.1windows powershell全屏切换——ALT+enter

1.2改变终端颜色等:



1.3直接打开当前路径下的文件资源管理器ii.

ii .


2.nvim目录下的所有文件讲解:

2.0全部文件概览

总共有1个核心文件夹(lua)、5个核心文件(.neoconf.json、init.lua、lazy-lock.json、lazyvim.json、stylua.toml)



先讲解五个核心文件,再讲解lua文件里面的插件

一、五个核心文件



2.1. neoconf.json文件

{
  "neodev": {
    "library": {
      "enabled": true,
      "plugins": true
    }
  },
  "neoconf": {
    "plugins": {
      "lua_ls": {
        "enabled": true
      }
    }
  }
}

这个 .neoconf.json 文件配置了两个部分:neodevneoconf,每个部分都有特定的配置项。以下是对每个部分和选项的详细解释:

1. neodev 部分

{
  "neodev": {
    "library": {
      "enabled": true,
      "plugins": true
    }
  }
}
  • neodev 是用于 Neovim 开发的一个配置部分,可能与一些开发工具或插件有关。

    • library:定义与库相关的配置。
      • enabled:设置为 true 表示启用库功能。这意味着 Neovim 将使用某些库来扩展其功能。
      • plugins:设置为 true 表示启用插件库。这意味着 Neovim 将从插件中加载库和扩展。

2. neoconf 部分

{
  "neoconf": {
    "plugins": {
      "lua_ls": {
        "enabled": true
      }
    }
  }
}
  • neoconf 是用于 Neovim 配置的另一个部分,可能用于管理插件的配置。

    • plugins:定义与插件相关的配置。
      • lua_ls:这是一个特定的插件(很可能是 Lua 语言服务器插件)的配置。
        • enabled:设置为 true 表示启用 lua_ls 插件。这意味着 Lua 语言服务器将被启用,用于提供 Lua 代码的自动补全、语法检查等功能。

总结

这个 .neoconf.json 文件主要配置了与 Neovim 开发和插件相关的设置:

  • 启用了库功能和插件库,可能用于扩展 Neovim 的功能。
  • 启用了 Lua 语言服务器插件,用于提供更好的 Lua 代码编辑支持。

这个配置文件对于那些使用 Neovim 进行开发,尤其是使用 Lua 进行配置和编程的用户非常有用。


2.2init.lua文件

-- bootstrap lazy.nvim, LazyVim and your plugins
require("config.lazy")

解释

1.这是最最核心的文件,是其他所有脚本的入口文件。

2.这一行代码是用于初始化 lazy.nvimLazyVim 和其他插件的。

3.require("config.lazy") 是一个 Lua 函数调用,用于加载并执行 config.lazy 模块。


总结

这种配置结构使得 Neovim 的插件和配置管理更加模块化和可维护。



2.3lazy-lock.json文件

这个 lazy-lock.json 文件是 Neovim 的 lazy.nvim 插件管理器的锁定文件,用于记录所有已安装插件的具体版本和提交记录。它确保在每次安装或更新插件时使用相同的版本,以保持开发环境的一致性。下面是对文件中每个部分的详细解释:

{
  "LazyVim": { "branch": "main", "commit": "78cf6ee024cbf6a17dc8406555eb131994cd8b63" },
  "bufferline.nvim": { "branch": "main", "commit": "81820cac7c85e51e4cf179f8a66d13dbf7b032d9" },
  "catppuccin": { "branch": "main", "commit": "31fcfb02c47952d5c75aec893b93b2878abe5fbb" },
  "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
  "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
  "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
  "conform.nvim": { "branch": "master", "commit": "cd75be867f2331b22905f47d28c0c270a69466aa" },
  "dashboard-nvim": { "branch": "master", "commit": "e6e33b848f0e2fe5c13f6553c568764555c390a3" },
  "dressing.nvim": { "branch": "master", "commit": "6741f1062d3dc6e4755367a7e9b347b553623f04" },
  "flash.nvim": { "branch": "main", "commit": "43f67935d388fbb540f8b40e8cbfd80de54f978a" },
  "friendly-snippets": { "branch": "main", "commit": "682157939e57bd6a2c86277dfd4d6fbfce63dbac" },
  "gitsigns.nvim": { "branch": "main", "commit": "6b1a14eabcebbcca1b9e9163a26b2f8371364cb7" },
  "indent-blankline.nvim": { "branch": "master", "commit": "65e20ab94a26d0e14acac5049b8641336819dfc7" },
  "lazy.nvim": { "branch": "main", "commit": "c882227f1fdc4580d14212df8f814a0772951e3d" },
  "lazydev.nvim": { "branch": "main", "commit": "78d8a11fbd02ad4eafa07dd8a43a959a69fb3bf8" },
  "lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" },
  "luvit-meta": { "branch": "main", "commit": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60" },
  "mason-lspconfig.nvim": { "branch": "main", "commit": "37a336b653f8594df75c827ed589f1c91d91ff6c" },
  "mason.nvim": { "branch": "main", "commit": "0950b15060067f752fde13a779a994f59516ce3d" },
  "mini.ai": { "branch": "main", "commit": "45587078f323eaf41b9f701bbc04f8d1ab008979" },
  "mini.pairs": { "branch": "main", "commit": "927d19cbdd0e752ab1c7eed87072e71d2cd6ff51" },
  "neo-tree.nvim": { "branch": "main", "commit": "206241e451c12f78969ff5ae53af45616ffc9b72" },
  "noice.nvim": { "branch": "main", "commit": "03c6a75661e68012e30b0ed81f050358b1e2233c" },
  "nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" },
  "nvim-cmp": { "branch": "main", "commit": "a110e12d0b58eefcf5b771f533fc2cf3050680ac" },
  "nvim-lint": { "branch": "master", "commit": "efc6fc83f0772283e064c53a8f9fb5645bde0bc0" },
  "nvim-lspconfig": { "branch": "master", "commit": "53a3c6444ec5006b567071614c83edc8ad651f6d" },
  "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" },
  "nvim-snippets": { "branch": "main", "commit": "5c978b3ba0c504dc9f94ca93d17029f26064d229" },
  "nvim-spectre": { "branch": "master", "commit": "49fae98ef2bfa8342522b337892992e3495065d5" },
  "nvim-treesitter": { "branch": "master", "commit": "6cd4ce6cab184e8787f164a182954534221f2af2" },
  "nvim-treesitter-textobjects": { "branch": "master", "commit": "34867c69838078df7d6919b130c0541c0b400c47" },
  "nvim-ts-autotag": { "branch": "main", "commit": "ddfccbf0df1b9349c2b9e9b17f4afa8f9b6c1ed1" },
  "nvim-web-devicons": { "branch": "master", "commit": "c0cfc1738361b5da1cd0a962dd6f774cc444f856" },
  "persistence.nvim": { "branch": "main", "commit": "95d03ad5450389ad7dc2a0fab14ebb3d46bc2c96" },
  "plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
  "telescope.nvim": { "branch": "master", "commit": "bfcc7d5c6f12209139f175e6123a7b7de6d9c18a" },
  "todo-comments.nvim": { "branch": "main", "commit": "51e10f838e84b4756c16311d0b1ef0972c6482d2" },
  "tokyonight.nvim": { "branch": "main", "commit": "c16eaeb9eaf4eb307431e58ec6101eecf2dbe52d" },
  "trouble.nvim": { "branch": "main", "commit": "e5d0e04121c662ce29190a57dd03655d43c59d44" },
  "ts-comments.nvim": { "branch": "main", "commit": "c075b4ee00f6e111b44bf99a8cfd5a4cfce9258a" },
  "which-key.nvim": { "branch": "main", "commit": "0099511294f16b81c696004fa6a403b0ae61f7a0" }
}

文件结构:
 

{
  "PluginName": { "branch": "BranchName", "commit": "CommitHash" },
  ...
}

每个字段的解释

  • PluginName:插件的名称。例如,LazyVimbufferline.nvim 等。
  • branch:插件的 Git 分支名称。例如,mainmaster
  • commit:插件的具体提交哈希值,用于精确锁定插件的版本。例如78cf6ee024cbf6a17dc8406555eb131994cd8b63

举例解释

LazyVim
"LazyVim": { "branch": "main", "commit": "78cf6ee024cbf6a17dc8406555eb131994cd8b63" }
  • branchmain,表示从主分支安装。
  • commit78cf6ee024cbf6a17dc8406555eb131994cd8b63,表示安装的是这个特定提交版本。

总结

lazy-lock.json 文件确保每次 Neovim 启动时加载的插件版本与上次一致。这是通过记录每个插件的 Git 分支和具体提交哈希值来实现的。这样可以避免由于插件版本不一致导致的潜在问题,并确保开发环境的稳定性和一致性。



2.4lazyvim.json

{
  "extras": [

  ],
  "news": {
    "NEWS.md": "6077"
  },
  "version": 6
}

总结

  • extras:目前是一个空数组,可能用于未来的扩展,以存储额外的配置或插件信息
  • news:包含一个键值对,指向一个名为 NEWS.md 的文件,并带有一个特定的版本号 6077,用于跟踪新闻或更新日志的状态。
  • version:配置文件的版本号 6,用于版本控制和兼容性处理。

这个文件的整体作用是为 LazyVim 或 Neovim 插件提供一些基本的配置和版本控制信息。


2.5stylua.toml

stylua.toml 文件通常用于配置 StyLua 的格式化选项,这是一个针对 Lua 代码的格式化工具。以下是你提供的 stylua.toml 文件内容的详细解释:

indent_type = "Spaces"
indent_width = 2
column_width = 120

逐行解释

indent_type = "Spaces"
  • 解释:这行配置指明了代码缩进使用空格而不是制表符(Tabs)。
    • "Spaces":表示缩进使用空格。
    • StyLua 会在格式化时使用空格来进行缩进,而不是使用 Tab。
indent_width = 2
  • 解释:这行配置指明了每层缩进的空格数。
    • 2:表示每层缩进使用 2 个空格。
    • 当 StyLua 格式化代码时,每次缩进将插入 2 个空格。
column_width = 120
  • 解释:这行配置设置了每行代码的最大列宽。
    • 120:表示每行代码的最大字符数是 120。
    • 当 StyLua 格式化代码时,它会尝试将每行代码限制在 120 个字符以内。如果一行代码超过了这个限制,StyLua 可能会将其拆分成多行,以保持代码在列宽范围内。



二、lua文件夹



文件夹里面有2个总文件夹,5个总文件

速览



1.config文件夹

1.1autocmds.lua文件

-- Autocmds are automatically loaded on the VeryLazy event
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
-- Add any additional autocmds here

autocmds.lua 文件通常用于配置 Neovim 的自动命令(autocommands)。自动命令允许你在特定的事件发生时自动执行某些命令。你提供的文件内容包含一些注释和指向默认自动命令的链接,以及一个用来添加额外自动命令的地方。

这全是注释,还没有实际内容。


1.2keymaps.lua文件

-- Keymaps are automatically loaded on the VeryLazy event
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
-- Add any additional keymaps here

keymaps.lua 文件用于配置 Neovim 的键映射(keymaps)。键映射允许你将键盘按键绑定到特定的命令或操作。你提供的文件内容包含一些注释和指向默认键映射的链接,以及一个用来添加额外键映射的地方。

这全是注释,还没有实际内容。

1.3lazy.lua文件

这个 lazy.lua 文件用于设置 Lazy.nvim 作为 Neovim 的插件管理器,指定了要使用的插件和一些默认配置,包括插件的延迟加载、版本管理、颜色主题安装和自动更新检查。通过这些配置,可以在 Neovim 中轻松管理和使用插件,提高工作效率。

local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"

if not (vim.uv or vim.loop).fs_stat(lazypath) then
  -- bootstrap lazy.nvim
  -- stylua: ignore
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
end
vim.opt.rtp:prepend(lazypath)

require("lazy").setup({
  spec = {
    -- add LazyVim and import its plugins
    { "LazyVim/LazyVim", import = "lazyvim.plugins" },
    -- import/override with your plugins
    { import = "plugins" },
  },
  defaults = {
    -- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
    -- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
    lazy = false,
    -- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
    -- have outdated releases, which may break your Neovim install.
    version = false, -- always use the latest git commit
    -- version = "*", -- try installing the latest stable version for plugins that support semver
  },
  install = { colorscheme = { "tokyonight", "habamax" } },
  checker = { enabled = true }, -- automatically check for plugin updates
  performance = {
    rtp = {
      -- disable some rtp plugins
      disabled_plugins = {
        "gzip",
        -- "matchit",
        -- "matchparen",
        -- "netrwPlugin",
        "tarPlugin",
        "tohtml",
        "tutor",
        "zipPlugin",
      },
    },
  },
})

这个 lazy.lua 文件的内容主要用于设置 Neovim 的插件管理器 Lazy.nvim,并配置相关的插件及其设置。以下是逐行详细解释:


文件内容
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
解释lazypath 是一个变量,存储了 Lazy.nvim 插件的安装路径。vim.fn.stdpath("data") 返回 Neovim 的数据目录。

if not (vim.uv or vim.loop).fs_stat(lazypath) then
  -- bootstrap lazy.nvim
  -- stylua: ignore
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
end

解释:检查 Lazy.nvim 是否已安装。如果没有,则使用 git 克隆 Lazy.nvim 仓库到指定路径。vim.uvvim.loop 是 Neovim 的异步 I/O 库,fs_stat 用于检查路径是否存在。


vim.opt.rtp:prepend(lazypath)

解释:将 Lazy.nvim 的路径添加到 runtimepath 的开头,使 Neovim 可以找到并加载 Lazy.nvim。



require("lazy").setup({
  spec = {
    -- add LazyVim and import its plugins
    { "LazyVim/LazyVim", import = "lazyvim.plugins" },
    -- import/override with your plugins
    { import = "plugins" },
  },
  defaults = {
    -- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
    -- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
    lazy = false,
    -- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
    -- have outdated releases, which may break your Neovim install.
    version = false, -- always use the latest git commit
    -- version = "*", -- try installing the latest stable version for plugins that support semver
  },
  install = { colorscheme = { "tokyonight", "habamax" } },
  checker = { enabled = true }, -- automatically check for plugin updates
  performance = {
    rtp = {
      -- disable some rtp plugins
      disabled_plugins = {
        "gzip",
        -- "matchit",
        -- "matchparen",
        -- "netrwPlugin",
        "tarPlugin",
        "tohtml",
        "tutor",
        "zipPlugin",
      },
    },
  },
})
逐部分解释
spec
spec = {
  -- add LazyVim and import its plugins
  { "LazyVim/LazyVim", import = "lazyvim.plugins" },
  -- import/override with your plugins
  { import = "plugins" },
}

解释:配置插件的规范。

  • LazyVim/LazyVim:引入 LazyVim 插件及其插件配置。
  • import = "plugins":引入用户自定义的插件配置。

defaults
defaults = {
  lazy = false,
  version = false, -- always use the latest git commit
}

解释:默认配置选项。

  • lazy = false:默认情况下,只有 LazyVim 插件会被延迟加载。用户自定义插件会在启动时加载。
  • version = false:默认使用插件的最新提交版本,而不是特定版本。

install
install = { colorscheme = { "tokyonight", "habamax" } }

解释:安装选项,指定默认的颜色主题。

  • colorscheme = { "tokyonight", "habamax" }:指定安装和使用的颜色主题。

checker
checker = { enabled = true }

解释:启用自动插件更新检查。

  • enabled = true:开启自动检查插件更新的功能。

performance
performance = {
  rtp = {
    -- disable some rtp plugins
    disabled_plugins = {
      "gzip",
      -- "matchit",
      -- "matchparen",
      -- "netrwPlugin",
      "tarPlugin",
      "tohtml",
      "tutor",
      "zipPlugin",
    },
  },
}
解释性能优化选项,禁用一些默认的 runtimepath 插件。
  • disabled_plugins:禁用列表中的插件,以提高性能。



1.4options.lua文件

在这个配置文件中,注释提到选项(options)是在 Lazy.nvim 启动之前自动加载的,并且提供了一个默认选项配置文件的链接。你可以在这里添加任何额外的选项以进一步自定义 Neovim 的行为。以下是一些常见的 Neovim 配置选项及其解释:

-- Options are automatically loaded before lazy.nvim startup
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
-- Add any additional options here

详细解释
默认选项配置

默认的选项配置文件位于 LazyVim 仓库。这是 LazyVim 提供的一些默认选项,你可以参考这些默认配置,并在此基础上添加或修改自己的配置。

添加额外选项


2.plugins文件夹


example.lua文件

-- since this is just an example spec, don't actually load anything here and return an empty spec
-- stylua: ignore
if true then return {} end

-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim
--
-- In your plugin files, you can:
-- * add extra plugins
-- * disable/enabled LazyVim plugins
-- * override the configuration of LazyVim plugins
return {
  -- add gruvbox
  { "ellisonleao/gruvbox.nvim" },

  -- Configure LazyVim to load gruvbox
  {
    "LazyVim/LazyVim",
    opts = {
      colorscheme = "gruvbox",
    },
  },

  -- change trouble config
  {
    "folke/trouble.nvim",
    -- opts will be merged with the parent spec
    opts = { use_diagnostic_signs = true },
  },

  -- disable trouble
  { "folke/trouble.nvim", enabled = false },

  -- override nvim-cmp and add cmp-emoji
  {
    "hrsh7th/nvim-cmp",
    dependencies = { "hrsh7th/cmp-emoji" },
    ---@param opts cmp.ConfigSchema
    opts = function(_, opts)
      table.insert(opts.sources, { name = "emoji" })
    end,
  },

  -- change some telescope options and a keymap to browse plugin files
  {
    "nvim-telescope/telescope.nvim",
    keys = {
      -- add a keymap to browse plugin files
      -- stylua: ignore
      {
        "<leader>fp",
        function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,
        desc = "Find Plugin File",
      },
    },
    -- change some options
    opts = {
      defaults = {
        layout_strategy = "horizontal",
        layout_config = { prompt_position = "top" },
        sorting_strategy = "ascending",
        winblend = 0,
      },
    },
  },

  -- add pyright to lspconfig
  {
    "neovim/nvim-lspconfig",
    ---@class PluginLspOpts
    opts = {
      ---@type lspconfig.options
      servers = {
        -- pyright will be automatically installed with mason and loaded with lspconfig
        pyright = {},
      },
    },
  },

  -- add tsserver and setup with typescript.nvim instead of lspconfig
  {
    "neovim/nvim-lspconfig",
    dependencies = {
      "jose-elias-alvarez/typescript.nvim",
      init = function()
        require("lazyvim.util").lsp.on_attach(function(_, buffer)
          -- stylua: ignore
          vim.keymap.set( "n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })
          vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer })
        end)
      end,
    },
    ---@class PluginLspOpts
    opts = {
      ---@type lspconfig.options
      servers = {
        -- tsserver will be automatically installed with mason and loaded with lspconfig
        tsserver = {},
      },
      -- you can do any additional lsp server setup here
      -- return true if you don't want this server to be setup with lspconfig
      ---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?>
      setup = {
        -- example to setup with typescript.nvim
        tsserver = function(_, opts)
          require("typescript").setup({ server = opts })
          return true
        end,
        -- Specify * to use this function as a fallback for any server
        -- ["*"] = function(server, opts) end,
      },
    },
  },

  -- for typescript, LazyVim also includes extra specs to properly setup lspconfig,
  -- treesitter, mason and typescript.nvim. So instead of the above, you can use:
  { import = "lazyvim.plugins.extras.lang.typescript" },

  -- add more treesitter parsers
  {
    "nvim-treesitter/nvim-treesitter",
    opts = {
      ensure_installed = {
        "bash",
        "html",
        "javascript",
        "json",
        "lua",
        "markdown",
        "markdown_inline",
        "python",
        "query",
        "regex",
        "tsx",
        "typescript",
        "vim",
        "yaml",
      },
    },
  },

  -- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above
  -- would overwrite `ensure_installed` with the new value.
  -- If you'd rather extend the default config, use the code below instead:
  {
    "nvim-treesitter/nvim-treesitter",
    opts = function(_, opts)
      -- add tsx and treesitter
      vim.list_extend(opts.ensure_installed, {
        "tsx",
        "typescript",
      })
    end,
  },

  -- the opts function can also be used to change the default opts:
  {
    "nvim-lualine/lualine.nvim",
    event = "VeryLazy",
    opts = function(_, opts)
      table.insert(opts.sections.lualine_x, "馃槃")
    end,
  },

  -- or you can return new options to override all the defaults
  {
    "nvim-lualine/lualine.nvim",
    event = "VeryLazy",
    opts = function()
      return {
        --[[add your custom lualine config here]]
      }
    end,
  },

  -- use mini.starter instead of alpha
  { import = "lazyvim.plugins.extras.ui.mini-starter" },

  -- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc
  { import = "lazyvim.plugins.extras.lang.json" },

  -- add any tools you want to have installed below
  {
    "williamboman/mason.nvim",
    opts = {
      ensure_installed = {
        "stylua",
        "shellcheck",
        "shfmt",
        "flake8",
      },
    },
  },
}

解释

这段 Lua 脚本是一个示例配置文件,用于 LazyVim 插件管理。让我们逐段解释它的内容:

空条件返回空表示例
if true then return {} end
这里的 if true then return {} end
 是一个示例条件语句,意味着在这个示例中不加载任何插件,直接返回一个空的配置表 {}

插件配置列表

return {
  { "ellisonleao/gruvbox.nvim" },
  { "LazyVim/LazyVim", opts = { colorscheme = "gruvbox" } },
  { "folke/trouble.nvim", opts = { use_diagnostic_signs = true } },
  { "folke/trouble.nvim", enabled = false },
  { "hrsh7th/nvim-cmp", dependencies = { "hrsh7th/cmp-emoji" }, opts = function(_, opts) ... end },
  { "nvim-telescope/telescope.nvim", keys = { ... }, opts = { defaults = { ... } } },
  { "neovim/nvim-lspconfig", opts = { servers = { ... } } },
  { "neovim/nvim-lspconfig", dependencies = { ... }, init = function() ... end, opts = { servers = { ... }, setup = { ... } } },
  { import = "lazyvim.plugins.extras.lang.typescript" },
  { "nvim-treesitter/nvim-treesitter", opts = { ensure_installed = { ... } } },
  { "nvim-treesitter/nvim-treesitter", opts = function(_, opts) ... end },
  { "nvim-lualine/lualine.nvim", event = "VeryLazy", opts = function(_, opts) ... end },
  { "nvim-lualine/lualine.nvim", event = "VeryLazy", opts = function() return { ... } end },
  { import = "lazyvim.plugins.extras.ui.mini-starter" },
  { import = "lazyvim.plugins.extras.lang.json" },
  { "williamboman/mason.nvim", opts = { ensure_installed = { ... } } },
}
  • 这部分定义了多个插件及其配置:
    • 使用 "ellisonleao/gruvbox.nvim" 添加了 Gruvbox 配色方案。
    • "LazyVim/LazyVim" 配置了 LazyVim 插件管理器使用 Gruvbox 主题。
    • "folke/trouble.nvim" 通过 opts 配置了 Trouble 插件,包括使用诊断标志。
    • 通过 { "folke/trouble.nvim", enabled = false } 禁用了 Trouble 插件。
    • "hrsh7th/nvim-cmp" 插件使用了函数 opts,动态修改了配置。
    • "nvim-telescope/telescope.nvim" 配置了 Telescope 插件的键映射和选项。
    • "neovim/nvim-lspconfig" 配置了 LSP 配置插件,包括添加了 pyright 和 tsserver。
    • { import = "lazyvim.plugins.extras.lang.typescript" } 导入了 LazyVim 额外的 TypeScript 配置。
    • "nvim-treesitter/nvim-treesitter" 配置了 Treesitter 插件,安装了多种语言的语法解析器。
    • "nvim-lualine/lualine.nvim" 配置了 Lualine 插件,添加了自定义的配置选项。
    • { import = "lazyvim.plugins.extras.ui.mini-starter" } 导入了额外的 UI 配置。
    • { import = "lazyvim.plugins.extras.lang.json" } 导入了 JSON 相关插件配置。
    • "williamboman/mason.nvim" 安装了一些工具,如 stylua、shellcheck 等。

这些配置示例展示了如何使用 LazyVim 来管理 Neovim 的插件和配置,通过导入和动态设置来扩展和定制 Neovim 的功能。



总结

以上就是lazyvim的全部内容详细讲解。我在会将全部内容发给GPT详细介绍如何使用即可。


📣非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞👍 关注❤收藏✅ 评论💬,大佬三连必回哦!thanks!!!
📚愿大家都能学有所得,功不唐捐!


💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖

热门专栏

🌈🌈专栏彩蛋系列

🌈🌈史上最全八股文,欢迎收藏

🌈🌈一篇文章了解我的上千篇博客

💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖


;