Neovim + LazyVim 现代化配置笔记


1. 核心前置准备 (Prerequisites)

在安装 Neovim 之前,必须准备好以下环境,否则插件功能(如搜索、图标显示)会失效。

1.1 Nerd Fonts (必须)

LazyVim 严重依赖图标字体来美化界面。

  • 操作:下载并安装一个 Nerd Font(推荐 JetBrainsMono Nerd FontHack Nerd Font)。

    image-20260212113224809

  • 设置:在终端(Terminal/iTerm2/Alacritty/Windows Terminal)设置中,将字体修改为你安装的 Nerd Font。

  • 官网下载Nerd Fonts Official Downloads

1.2 基础构建工具

很多插件(如 Telescope, Treesitter)需要编译或依赖外部工具。

  • macOS: brew install ripgrep fd gcc lazygit
  • Ubuntu/Debian: sudo apt install build-essential ripgrep fd-find git (注意: fd可能需要做软链接)
  • ArchLinux: sudo pacman -S base-devel ripgrep fd git lazygit
  • Windows: 建议使用 Scoop 或 Chocolatey 安装 ripgrep, fd, gcc, lazygit

2. 安装 Neovim (Stable Release)

LazyVim 要求 Neovim 版本至少为 0.9.0+(推荐 0.10+)。

各平台安装指令:

  • macOS (Homebrew):

    brew install neovim
    
  • Windows (Winget):

    winget install Neovim.Neovim
    
  • Linux (通用/推荐):

    Arch Linux (Pacman): Arch 的官方仓库通常紧跟上游版本,直接安装即可获得最新的稳定版(无需编译):

    sudo pacman -S neovim
    

    下载 AppImage 是最快且不依赖系统包管理器版本的方法:

    curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim.appimage
    chmod u+x nvim.appimage
    ./nvim.appimage
    # 建议将其移动到 /usr/local/bin 并重命名为 nvim
    

验证安装:终端输入 nvim --version


3. 部署 LazyVim (配置管理)

我们将使用官方推荐的克隆仓库方式,这样既拥有了完整的配置,又方便后续使用 Git 管理自己的修改。

3.1 备份旧配置 (如果有)

# required
mv ~/.config/nvim{,.bak}

# optional but recommended
mv ~/.local/share/nvim{,.bak}
mv ~/.local/state/nvim{,.bak}
mv ~/.cache/nvim{,.bak}

3.2 克隆 LazyVim Starter

git clone https://github.com/LazyVim/starter ~/.config/nvim

3.3 移除 .git 文件夹 (可选)

如果你想把这个配置变成你自己的 Git 仓库:

rm -rf ~/.config/nvim/.git
cd ~/.config/nvim
git init

3.4 首次启动

在终端输入 nvim

  • 注意:首次启动时,LazyVim 会自动通过 lazy.nvim 包管理器下载几十个插件。请耐心等待,直到出现 Dashboard 界面。

    image-20260212114921546

  • 安装好插件后重新启动neovim

    # 打开当前文件夹
    nvim .
    

    image-20260212115425155


4. LazyVim 核心操作逻辑

LazyVim 修改了许多原生 Vim 的默认行为,使其更符合现代 IDE 的直觉。

核心键位 (Leader Key): 默认为 空格键 (<Space>)。下文中的 <leader> 均指代空格键。

4.1 窗口与文件导航 (Window & Buffer)

LazyVim 极大地简化了多窗口和多文件的切换逻辑。

目标 快捷键 说明
文件树 (Explorer) <leader> e 打开/关闭 NeoTree 文件树
查找文件 <leader> <space> 相当于 VSCode 的 Ctrl+P,查找项目内文件
全局搜索 <leader> s g Grep 搜索 (依赖 ripgrep),搜索全项目内容
切换 Buffer Shift-h / Shift-l Shift+H (左) / Shift+L (右) 切换顶部标签页
窗口跳转 Ctrl + h/j/k/l 在分割的窗口之间光标跳转 (无需按 Ctrl+w)
关闭当前 Buffer <leader> b d 安全关闭当前文件标签
垂直分屏 <leader> \ 左右分屏
水平分屏 <leader> - 上下分屏

4.2 代码编辑与 LSP 功能 (IDE Features)

LazyVim 默认配置了强大的 LSP (Language Server Protocol) 支持。

目标 快捷键 说明
查看定义 g d Goto Definition
查看引用 g r Goto References (会打开列表)
悬停文档 K 查看函数/变量的文档提示
代码格式化 <leader> c f Format (使用 Prettier 或 LSP 格式化)
代码重命名 <leader> c r Rename (重构变量名,全局生效)
代码操作 <leader> c a Code Action (快速修复,如自动导包)
诊断错误 <leader> x x 打开底部面板显示当前项目的所有错误/警告

4.3 插件与系统管理

目标 快捷键/命令 说明
插件管理面板 <leader> l 打开 Lazy 界面,查看插件更新、启动时间
安装lazy扩展 :LazyExtras 打开Extras界面,x键安装插件
LSP/工具安装 :Mason 打开 Mason 界面,手动安装 LSP server, linter 等
健康检查 :checkhealth 遇到问题时的第一步,检查环境缺失
键位映射查询 <leader> s k 非常重要:搜索当前所有可用的快捷键
  • :LazyExtras安装python和json

  • 退出然后打开neovim自动安装

    image-20260212124409467

    若是提示需要pyright可以用系统包管理器安装:

    sudo pacman -S pyright
    

5. 自定义配置指南 (Configuration)

LazyVim 的目录结构非常清晰,遵循“用户配置覆盖默认配置”的原则。

目录结构: ~/.config/nvim/

├── init.lua             # 入口文件 (通常不动)
├── lazy-lock.json       # 插件版本锁定文件
├── lua
│   ├── config           # 用户基础配置
│   │   ├── autocmds.lua # 自动命令
│   │   ├── keymaps.lua  # 自定义快捷键
│   │   ├── lazy.lua     # 插件加载逻辑
│   │   └── options.lua  # Vim 选项 (如行号、缩进)
│   └── plugins          # 用户插件配置 (重点在这里)
│       ├── example.lua
│       └── ...

5.1 修改基础设置 (options.lua)

编辑 lua/config/options.lua

-- 示例:开启相对行号
vim.opt.relativenumber = true
-- 示例:设置缩进为 4 空格
vim.opt.tabstop = 4
vim.opt.shiftwidth = 4

5.2 添加/修改插件 (plugins 目录)

LazyVim 使用 lazy.nvim 的 specs 机制。你只需要在 lua/plugins/ 目录下新建 .lua 文件即可。

案例 1:安装一个新插件 (Supermaven)

新建 lua/plugins/supermaven.lua:

return {
  "supermaven-inc/supermaven-nvim",
  config = function()
    require("supermaven-nvim").setup({})
  end,
}

案例 2:修改 LazyVim 内置插件配置 (Colorscheme)

LazyVim 默认使用 Tokyo Night。如果你想换成 Catppuccin。

新建 lua/plugins/theme.lua:

return {
  -- 1. 下载新主题
  { "catppuccin/nvim", name = "catppuccin", priority = 1000 },

  -- 2. 配置 LazyVim 加载该主题
  {
    "LazyVim/LazyVim",
    opts = {
      colorscheme = "catppuccin",
    },
  },
}

案例 3:添加语言支持

LazyVim 提供了 “Extras” 模块,可以一键开启对 Python, Rust, Go 等语言的完美支持。

  • 操作:在 Neovim 中输入 :LazyExtras
  • 选择:使用方向键找到你需要的语言(例如 lang.python),按 x 启用。
  • 重启 Neovim,它会自动安装 Pyright, Ruff 等工具。

6. 常见问题 (Troubleshooting)

  1. 图标显示乱码

    • 检查终端字体是否为 Nerd Font
    • 如果是 Docker 或 SSH 环境,确保本地终端字体正确。
  2. LSP 报错或未生效

    • 输入 :Mason 查看对应语言的 Server 是否已安装。
    • 输入 :LspInfo 查看当前文件是否连接到了 LSP 客户端。
  3. Treesitter 报错 (高亮失效)

    • 输入 :TSUpdate 更新解析器。
    • 确保系统安装了 C 编译器 (gccclang)。
  4. 快捷键冲突

    • 使用 <leader> s k (Search Keymaps) 输入你想按的键,查看它被绑定到了什么功能。
  5. Node.js / Python 提供者缺失

    某些插件(如 Markdown 预览、Copilot)需要 Node.js 环境。Arch 用户需单独安装:

    sudo pacman -S nodejs npm python-pynvim
    

    python-pynvim 是 Python 插件与 Neovim 通信的桥梁,建议安装。

  6. 找不到fd 需要下载fd用来检索文件

    Arch系:

    sudo pacman -S fd
    

    Debian系:

    sudo apt install fd-find
    # 若是neovim检测不到fd
    ln -s $(which fdfind) ~/.local/bin/fd
    

    macOS:

    brew install fd
    
  7. 系统剪切板与neovim不互通

    Arch系列:

    # 对于x11桌面:
    sudo pacman -S xclip 
    # 对于wayland桌面:
    sudo pacman -S wl-clipboard
    

    Debian系:

    # 对于x11桌面:
    sudo pkg install xclip 
    # 对于wayland桌面:
    sudo pkg install wl-clipboard
    

    neovim中查看系统剪贴板内容:

    :reg
    # "+与"*中的是系统的,其他是neovim yark的寄存器
    

    系统ctrl+c复制文字neovim中粘贴

    # neovim中粘贴
    "+p
    # or
    "*p
    

    neo中复制内容

    # v选中 或者 shift V选中行
    V y
    

    一般这时候系统ctrl+v即可粘贴,无效则需要配置:

    在~/.config/nvim/init.vim中加入下面一行,目录或文件不存在则新建一个

    set clipboard+=unnamedplus
    
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐