前言&参考
本文主旨为先用起来,再扣细节。所以直接使用LazyVim的默认配置开始使用Neovim。默认的配置中,自带了插件配置、LSP(语言服务器)、代码格式化、补全、UI增强等插件,可以说是开箱即用。
相关参考
- https://lazyvim-github-io.vercel.app/zh-Hans/
- https://blog.innei.ren/nvim-plugin-recommend?locale=zh
- https://www.bilibili.com/video/BV171LfzDEXU/?share_source=copy_web&vd_source=ada30d7f7831e09a49f20956452f6da9

安装&配置
安装Neovim
由于我的开发机使用的Linux mint 系统,基于ubuntu jermmy发行版,对应的PPA源中没有较新的版本,最新只到v0.9,所以下载tar包进行手动安装。
下载Neovim
- 从 https://github.com/neovim/neovim/releases/ 下载对应的压缩包,并解压;
开始手动安装到 /usr/local/
- 移动文件到系统目录:
sudo mv /home/xuan/Downloads/nvim-linux-x86_64 /usr/local/nvim - 创建符号链接到 PATH 目录:
sudo ln -s /usr/local/nvim/bin/nvim /usr/local/bin/nvim - 验证安装,应该会显示 Neovim 的版本信息
nvim --version
安装插件管理器 lazy.vim
这里要区分一个概念,lazy.vim 和 LazyVim
- lazy.vim —— 是Neovim的一个通用的插件管理器
- LazyVim —— 是一个基于lazy.vim构建的Neovim配置框架,即它在lazy.vim的基础上,再次封装了一些内容,来让用户更加方便的配置插件管理。
- 当我们在 git clone LazyVim到本地后,启动nvim,第一次就会将lazy.vim安装到本地,无需额外手动安装lazy.vim。
- git clone https://github.com/LazyVim/starter ~/.config/nvim
- 当我们在 git clone LazyVim到本地后,启动nvim,第一次就会将lazy.vim安装到本地,无需额外手动安装lazy.vim。
安装LazyVim
详见官方文档 https://www.lazyvim.org/installation ,按照Installtion章节,即可完成快速部署。
配置文件目录结构
相关配置文件,即Neovim的默认配置目录,存储于
~/.config/nvim
安装LazyVim后完整的目录结构为 —— 解析From ChatGPT
~/.config/nvim/
├── init.lua ← LazyVim 的启动入口
├── lazyvim.json ← LazyVim 版本信息(可选,用于锁定模板版本)
├── LICENSE / README.md ← 文档(一般是 LazyVim 模板附带的)
├── stylua.toml ← Lua 代码格式化配置(用于 stylua 工具)
└── lua/
├── config/
│ ├── autocmds.lua ← 自定义自动命令(autocmd)
│ ├── keymaps.lua ← 自定义键位配置
│ ├── lazy.lua ← LazyVim 初始化 lazy.nvim 的核心脚本
│ └── options.lua ← 全局配置项(如行号、缩进等)
└── plugins/
└── example.lua ← 插件定义示例(你可以添加自己的插件配置)
添加插件
简单来说就是新建一个lua文件,在return {}中添加对应插件的Github路径,再加上触发条件以及插件的相关配置参数即可,再次打开Neovim然后会自动拉取安装。
以edgy插件为例,一个管理窗口的插件 —— https://github.com/folke/edgy.nvim
- 添加文件
nvim ~/.config/nvim/lua/plugins/edgy.lua - 写入内容
return {
"folke/edgy.nvim",
event = "VeryLazy",
enabled = true, -- 如果 LazyVim 默认禁用了,你需要启用
opts = {
-- 默认配置即可自动管理 neo-tree, terminal 等窗口
},
}
- 插件配置通用模板 —— from ChatGPT
-- 例如:~/.config/nvim/lua/plugins/myplugin.lua
return {
{
"插件作者/插件名", -- GitHub 上的路径
lazy = true, -- 默认延迟加载(推荐)
event = "VeryLazy", -- 或 "BufReadPost" 等触发条件
cmd = { "MyCommand" }, -- 只有执行命令才加载插件
keys = { -- 按键触发加载(可多个)
{ "<leader>x", "<cmd>MyCommand<cr>", desc = "描述信息" },
},
dependencies = { "依赖插件/依赖名" }, -- 如有依赖
opts = { -- 简单配置用 opts(推荐)
setting1 = true,
setting2 = "value",
},
config = function(_, opts) -- 如果需要复杂配置
require("插件模块").setup(opts)
end,
},
}
相关插件补充
toggleterm.nvim 类似于vscode的命令行
部分快捷键
Neovim 默认leader 键位是 空格
- 打开文件树 leader + e
- 打开/查找文件 leader + ff
- 切换文件 leader + bb
- 打开关闭终端 leader + t
- 查找内容 / + 内容之后,清楚搜索高亮 ——> ESC
补充
图标乱码问题解决
安装&下载字体
- https://www.cnblogs.com/d1s2y3/p/18520310
- https://www.nerdfonts.com/font-downloads
需要安装支持的字体 JetBrainsMono Nerd Font,同时注意termal字体也需要设置。如下图所示:

结尾
至此,已经完成了基础的Neovim设置,经过一段时间的使用,我会不断更新配置和使用习惯,如果有后续还会继续更新Neovim系列的文章。
要还是犹豫平时开发用Vscode用的有点腻了,想找点折腾的乐趣,简单用了下vimplus,感觉还是比较麻烦,进一步选择了Neovim,希望我能坚持住。

打开了FMT——一个C++开源项目做示范
工作马上一年了,感觉自己似乎在技术上没什么涨进,我不允许自己就此停步, 希望从小工具的使用上,激起自己之前学习的欲望。
THERE IS NO END.
评论区