neovim-lazyvim-setup

Neovim + LazyVim 安装教程

适用环境:Ubuntu 24.04 / x86_64,SSH 连接远程服务器

目录

  1. 环境确认
  2. 安装 Neovim 最新稳定版
  3. 安装系统依赖
  4. 安装 LazyVim
  5. 配置剪贴板(SSH 关键)
  6. 首次运行与插件安装
  7. 验证安装
  8. 日常使用技巧
  9. 常见问题

1. 环境确认

# 查看系统版本
cat /etc/os-release

# 查看架构
uname -m

# 查看是否已安装 Neovim
which nvim
nvim --version

# 检查必要工具
which curl wget git tar make gcc unzip

要求:LazyVim 需要 Neovim ≥ 0.9.0,推荐 0.10+。

代理配置(可选)

如果服务器位于墙内,下载可能很慢,可以启用代理:

# 你的代理命令(示例)
proxy_on

# 验证代理是否生效
curl -s https://api.github.com/repos/neovim/neovim/releases/latest | head -5

2. 安装 Neovim 最新稳定版

Ubuntu 24.04 官方 apt 源的 Neovim 版本太旧(0.4.3),不要用 apt 安装。推荐使用官方预编译 tarball。

2.1 获取最新版本号

curl -s https://api.github.com/repos/neovim/neovim/releases/latest | grep '"tag_name"'

示例输出:"tag_name": "v0.12.2"

2.2 下载 tarball

cd /tmp
curl -fSL -o nvim-linux64.tar.gz \
  https://github.com/neovim/neovim/releases/download/v0.12.2/nvim-linux-x86_64.tar.gz

注意:将 v0.12.2 替换为实际的最新版本号。如果是 ARM 架构(如树莓派),将 x86_64 改为 arm64

2.3 安装到系统

# 解压
tar xzf nvim-linux64.tar.gz

# 安装到 /usr/local(需要 sudo)
sudo rm -rf /usr/local/share/nvim /usr/local/lib/nvim /usr/local/bin/nvim
sudo cp -r nvim-linux-x86_64/* /usr/local/

# 验证
nvim --version

无 sudo 方案:也可以安装到 ~/.local

mkdir -p ~/.local
cp -r nvim-linux-x86_64/* ~/.local/
# 确保 ~/.local/bin 在 PATH 中

3. 安装系统依赖

LazyVim 和一些常用插件需要以下工具:

sudo apt-get update
sudo apt-get install -y ripgrep fd-find xclip xsel
工具 用途
ripgrep Telescope 模糊搜索(全文搜索)
fd-find Telescope 模糊搜索(文件搜索)
xclip / xsel 系统剪贴板支持(本地桌面可用时)

4. 安装 LazyVim

4.1 备份现有配置(如果有)

# 如果已有配置,先备份
mv ~/.config/nvim ~/.config/nvim.bak.$(date +%Y%m%d)
mv ~/.local/share/nvim ~/.local/share/nvim.bak.$(date +%Y%m%d)
mv ~/.local/state/nvim ~/.local/state/nvim.bak.$(date +%Y%m%d)
mv ~/.cache/nvim ~/.cache/nvim.bak.$(date +%Y%m%d)

4.2 克隆 LazyVim Starter

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

4.3 移除模板的 Git 记录

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

这样你的配置就是独立的,而不是 GitHub 模板的一个 fork。你可以自己初始化 Git 仓库来管理配置。

4.4 配置目录结构

~/.config/nvim/
├── init.lua              # 入口文件
├── lua/
│   ├── config/
│   │   ├── options.lua   # 编辑器选项
│   │   ├── keymaps.lua   # 快捷键
│   │   ├── autocmds.lua  # 自动命令
│   │   └── lazy.lua      # 插件管理器配置
│   └── plugins/
│       ├── example.lua   # 示例插件配置
│       └── *.lua         # 你的插件配置

5. 配置剪贴板(SSH 关键)

问题:通过 SSH 连接远程服务器时,系统剪贴板无法直接使用,"+y 会报错。

5.1 解决方案:OSC 52

OSC 52 是一种终端转义序列协议,可以通过 SSH 将文本从远程 Neovim 传送到本地剪贴板。大多数现代终端模拟器都支持(iTerm2、kitty、Alacritty、Windows Terminal、WezTerm 等)。

5.2 配置方法

编辑 ~/.config/nvim/lua/config/options.lua

-- 使用系统剪贴板("+" 寄存器)
vim.opt.clipboard = "unnamedplus"

-- 配置 OSC 52 剪贴板支持(SSH 场景)
-- 如果没有 xclip/xsel 可用,使用内置 OSC 52
if vim.fn.executable("xclip") ~= 1 and vim.fn.executable("xsel") ~= 1 then
  vim.g.clipboard = {
    name = "osc52",
    copy = {
      ["+"] = require("vim.ui.clipboard").osc52,
      ["*"] = require("vim.ui.clipboard").osc52,
    },
    paste = {
      ["+"] = require("vim.ui.clipboard").osc52,
      ["*"] = require("vim.ui.clipboard").osc52,
    },
  }
end

说明:Neovim 0.10+ 内置了 OSC 52 支持。本教程安装的 v0.12.2 完全支持。

5.3 使用方法

启用后,在 Neovim 中:

  • yy — 复制当前行(自动到系统剪贴板)
  • yiw — 复制当前单词
  • "+y — 显式复制到系统剪贴板
  • p — 粘贴

在 SSH 终端中,这些操作会将文本发送到你的本地机器剪贴板

5.4 本地终端要求

终端 是否支持 OSC 52
iTerm2 (macOS) ✅ 默认支持
kitty ✅ 默认支持
Alacritty ✅ 默认支持
WezTerm ✅ 默认支持
Windows Terminal ✅ 默认支持
tmux ⚠️ 需要配置 set -g set-clipboard on
macOS 终端 ⚠️ 部分支持

6. 首次运行与插件安装

6.1 直接启动(交互式)

nvim

首次启动会自动:

  1. 下载 lazy.nvim 插件管理器
  2. 下载 LazyVim 核心及所有预置插件(约 30+ 插件)
  3. 安装 Treesitter 解析器

首次安装需要联网,耗时取决于网速。如果遇到网络问题,请启用代理。

6.2 静默安装(非交互式)

nvim --headless "+Lazy! sync" +qa

6.3 安装进度查看

Lazy.nvim 的 UI 界面:

  • <Space>l:Lazy — 打开插件管理器
  • I — 安装新插件
  • U — 更新插件
  • S — 同步插件
  • X — 清理未使用的插件

7. 验证安装

# 检查 Neovim 版本
nvim --version | head -3

# 检查插件数量
ls ~/.local/share/nvim/lazy/ | wc -l

# 检查健康状态
nvim --headless "+checkhealth" +qa

剪贴板测试

在 Neovim 中:

1. 输入一些文本
2. 按 V 进入可视行模式,选中文本
3. 按 y 复制(注意观察终端是否有提示)
4. 在本地机器的文本编辑器中按 Ctrl+V(或 Cmd+V)

8. 日常使用技巧

8.1 LazyVim 常用快捷键

快捷键 功能
<Space> 空格键作为 Leader 键,调出 which-key 菜单
<Space>ff 查找文件(Telescope)
<Space>fg 全文搜索(Telescope)
<Space>fb 查找缓冲区
<Space>e 文件浏览器
<Space>lr LazyVim 插件更新
<Space>th 切换主题
gd 跳转到定义(LSP)
K 查看文档(LSP)
<Space>ca 代码动作(Code Action)
<Space>sr 替换文本

8.2 自定义配置

~/.config/nvim/lua/plugins/ 下创建 .lua 文件即可添加插件:

-- ~/.config/nvim/lua/plugins/my-plugin.lua
return {
  "作者/插件名",
  config = function()
    -- 插件配置
  end,
}

8.3 更新 LazyVim

nvim --headless "+Lazy! update" +qa

或在 Neovim 中执行 :Lazy update


9. 常见问题

Q: 启动报错 “Failed to clone lazy.nvim”

网络问题,请启用代理后重试:

proxy_on
nvim

Q: 剪贴板不工作 / "+y 报错

  1. 确认终端模拟器支持 OSC 52(见 5.4 节)
  2. 如果在 tmux 内,需要添加配置:
    set -g set-clipboard on
    
  3. 也可以在本地终端中测试 OSC 52 支持:
    echo -e "\e]52;c;$(echo "test" | base64)\a"
    

Q: 插件安装失败

# 清理所有插件后重新安装
rm -rf ~/.local/share/nvim/lazy
nvim

Q: 想恢复到默认设置

# 备份当前配置
mv ~/.config/nvim ~/.config/nvim.bak.$(date +%Y%m%d)

# 重新克隆
git clone https://github.com/LazyVim/starter.git ~/.config/nvim
rm -rf ~/.config/nvim/.git
nvim

Q: LSP 自动补全不工作

LazyVim 使用 Mason 自动管理 LSP 服务器。首次打开文件时会提示安装:

:LspInfo     — 查看当前 LSP 状态
:Mason       — 打开 Mason 管理界面

或在 ~/.config/nvim/lua/plugins/ 中手动配置 LSP:

return {
  {
    "neovim/nvim-lspconfig",
    opts = {
      servers = {
        pyright = {},    -- Python
        rust_analyzer = {}, -- Rust
        gopls = {},      -- Go
        -- 更多 LSP 配置
      },
      setup = {},
    },
  },
}

教程信息:适用 Neovim v0.12.2 + LazyVim 最新版
最后更新:2026-06-04


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 kipleyarch@gmail.com
Archive PDF预览 PPTX Obsidian