我直接把过 … 阅读全文
我直接把过去的配置迁移过来就行了……我刚刚是不是删掉了什么?
-- 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
---------------------------------------------------------------
-- ~/.config/nvim/init.lua —— 最小可行且舒服
---------------------------------------------------------------
-- 0. 判断系统 & 默认 shell
local is_win = vim.fn.has("win32") == 1 or vim.fn.has("win64") == 1
if is_win then
vim.opt.shell = "powershell"
vim.opt.shellcmdflag = "-NoLogo -NoProfile -ExecutionPolicy RemoteSigned -Command"
end
-- 1. 外观
vim.opt.number = true -- 绝对行号
vim.opt.relativenumber = false -- 绝对行号
vim.opt.showmatch = true -- 括号匹配
vim.opt.matchtime = 5 -- 0.5 s
vim.opt.wrap = true -- 长行自动换行
-- vim.opt.list = true -- 显示空格
-- vim.opt.listchars = { space = "." }
-- 2. 输入体验
vim.g.mapleader = " "
vim.opt.mouse = "a"
vim.opt.clipboard = "unnamedplus" -- 默认系统剪贴板
-- 3. 缩进
vim.opt.tabstop = 4
vim.opt.softtabstop = 4
vim.opt.shiftwidth = 4
vim.opt.expandtab = true -- 用 4 空格而不是tab
vim.opt.smartindent = true -- 智能缩进
vim.opt.autoindent = true
-- 4. 搜索 / 修改
vim.opt.hlsearch = true -- 搜索时高亮显示被找到的文本
vim.opt.incsearch = true -- 输入搜索内容时就显示搜索结果
vim.opt.ignorecase = true -- 搜索时忽略大小写
vim.opt.smartcase = true -- 但在有大写字母时仍保持对大小写敏感
-- 5. 缓冲区、撤销
vim.opt.swapfile = false
vim.opt.backup = false
vim.opt.writebackup = false
vim.opt.history = 100 -- undo 100 次
vim.opt.updatetime = 100 -- 提升 LSP/gitsigns 响应
lua/config 目录:这里还可以定义各种快捷键和自动命令。如果你不是重度自定义用户,只需要调整 options.lua 就够了。不过我建议你还是打开其他文件看看,了解一下 LazyVim 是如何设计快捷键的。
插件
所有的插件配置都放在 lua/plugins 目录下,里面已经有一个 example.lua 示例文件。
以 twilight.nvim 插件为例,看看如何优雅地添加一个新插件。在 lua/plugins 中创建 twilight.lua 文件,然后添加这些内容:
-- 一定要加 return ,否则插件无法加载
return {
"folke/twilight.nvim",
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
}
}
保存文件后,重新打开 Neovim,或者使用 :Lazy sync 命令,LazyVim 就会像魔法师一样自动帮你安装好新插件。
LSP 语言服务器
LazyVim 内置了 Mason LSP 管理器,你不用为配置各种语言服务器而头疼了。

:Mason:图形界面
:MasonInstall XXX:命令安装指定插件
常用的就这两个命令。使用前记得确保网络通畅。
Lua 环境配置
在 Mason 界面中,可以用 Ctrl+F 搜索你想要的语言服务器,找到后按 i 键就能安装:

也可以通过命令行直接安装
:MasonInstall lua-language-server
Python 环境

:MasonInstall pyright
现在很多小伙伴都爱用 uv 包管理器,俺也一样。在用 Neovim 写 Python 代码之前,需要先激活你的虚拟环境, source .venv/bin/activate,这样 LSP 才能准确地理解你的项目依赖。
C/C++ 环境
说到 C/C++ 的语言服务器,除了 clangd,其他的我看都不会看一眼,so:
:MasonInstall clangd
当然也可以搜索安装,安装之后,效果如下:

顺带啰嗦一句,如果你的项目使用 CMake,记得在配置时加上 -DCMAKE_EXPORT_COMPILE_COMMANDS=ON 参数,这样才会生成 compile_commands.json 文件,clangd 才能完美理解你的项目结构。
收官
经过这番折腾,我的 LazyVim 配置基本就完成了。整个过程并没有想象中那么复杂,改动适中,工作量大概相当于在 VSCode 里安装几个 LSP 插件的水平。
最让我满意的是,当面对那些需要多层 SSH 跳转的服务器环境时,Vim/Neovim 的速度优势就完全显现出来了。
所以,如果你也是一个 Neovim 爱好者,或者正在为多服务器开发环境而烦恼,不妨试试 LazyVim。它能让你在最短的时间内拥有一个功能完整、颜值在线的编辑器环境。 收起