🌈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
文件配置了两个部分:neodev
和 neoconf
,每个部分都有特定的配置项。以下是对每个部分和选项的详细解释:
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.nvim
、LazyVim
和其他插件的。
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:插件的名称。例如,
LazyVim
、bufferline.nvim
等。 - branch:插件的 Git 分支名称。例如,
main
、master
。 - commit:插件的具体提交哈希值,用于精确锁定插件的版本。例如
78cf6ee024cbf6a17dc8406555eb131994cd8b63
。
举例解释
LazyVim
"LazyVim": { "branch": "main", "commit": "78cf6ee024cbf6a17dc8406555eb131994cd8b63" }
- branch:
main
,表示从主分支安装。 - commit:
78cf6ee024cbf6a17dc8406555eb131994cd8b63
,表示安装的是这个特定提交版本。
总结
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.uv
和 vim.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!!!
📚愿大家都能学有所得,功不唐捐!
💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖
热门专栏
💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖