2315 字
12 分钟
在 CachyOS 上从 Neovide 起步,到切到 LazyVim

这几天我重新把目光放回了 Neovim 这一套工具链。

起点其实很简单:我装了 Neovide,结果一启动就先看到一条报错。后面一路顺着排查下去,才把几个一直混在一起的概念重新理清楚了:Neovide 到底是什么、lazy.nvim 负责什么、LazyVim 又是在解决哪一层的问题。如果你也是隔了一段时间才重新捡起 Neovim,这些边界重新梳理一遍其实很有必要。

第一个问题,不是配置写错,而是配置目录根本不存在#

最开始那条报错看上去像是配置内容有问题,但实际原因更基础。

Neovide 在启动时会去监听自己的配置目录,默认位置是 ~/.config/neovide。而我机器上当时根本没有这个目录,所以它报的并不是“配置解析失败”,而是“找不到要监听的路径”。

这个问题处理起来很直接,只要补上目录,再放一个最小的 config.toml 就行。也正因为这一步足够简单,我才意识到另一个更重要的问题:我虽然装了 Neovide 和 Neovim,但对这整套东西的职责边界其实已经有点模糊了。

重新分清楚:Neovide、Neovim、lazy.nvim、LazyVim 各管哪一层#

如果把这几个名字都堆在一起看,很容易越看越乱。

但把它们拆开以后,逻辑其实很清楚。

  • Neovim 是编辑器本体
  • Neovide 是 Neovim 的 GUI 前端
  • lazy.nvim 是插件管理器
  • LazyVim 是一套建立在 lazy.nvim 之上的预配置方案

也就是说,Neovide 本身并不提供一套新的编辑逻辑。它做的事情更像是把 Neovim 放进一个更现代的图形壳子里,让字体、窗口、鼠标、动画和剪贴板体验更舒服。

真正负责编辑行为、按键、命令和插件生态的,仍然是 Neovim。

而 lazy.nvim 处理的是“插件怎么安装、怎么更新、怎么锁版本”;LazyVim 处理的则是“如果我不想从零手搓一套 IDE 体验,有没有一套现成的、结构清晰的默认方案”。

这几个概念一旦分开,很多之前模糊的地方就一下子明白了。

那条“有插件更新”的提示,其实不是报错#

重新看配置时,我很快发现自己的 Neovim 已经接入了 lazy.nvim,而且配置里明确开了自动检查更新。

这也解释了另一个我一开始觉得有点烦、后来才想通的问题:为什么每次打开 Neovide,它总在提醒我有插件更新。

答案很简单,因为它真的在帮我检查更新。

这里最值得记住的几个命令其实不多:

:Lazy
:Lazy check
:Lazy update
:Lazy sync

如果只想知道有没有更新,用 :Lazy check;如果确认要更新插件,用 :Lazy update;如果想把安装、更新和清理一起做一遍,用 :Lazy sync

在 Lazy 面板里,对应的高频按键也很集中:

  • U:更新插件
  • C:检查更新
  • S:执行 sync
  • R:恢复到锁文件版本
  • ?:打开帮助

想通这一点之后,“启动时提示更新”这件事的性质就变了。它不再像是一个需要修掉的异常,而更像是一条正常的状态信息。

如果目标是更接近 VS Code,问题很快就会变成:要不要直接上 LazyVim#

当我开始认真看自己当前的配置时,另一个事实也很明显:这套配置其实非常轻。

入口文件只负责加载一层 lazy 配置,插件也只有少数几项和文件树相关的内容。它当然能用,但离“接近 VS Code 的完整开发体验”还差不少块:LSP、补全、状态栏、buffer 标签、Git 标记、快捷键提示、搜索面板,这些都还没真正搭起来。

这时路线其实只有两条。

第一条,是继续保留这套极简配置,然后一点点往上加插件。第二条,则是直接切到 LazyVim,把这些已经被社区验证过的默认能力整体接过来。

如果你本来就很熟悉 Neovim 生态,自己拼一套完全没问题。但如果像我一样,是隔了很久重新回坑,而且目标非常明确,就是“我想尽快得到一套接近现代 IDE 的体验”,那 LazyVim 的性价比会高得多。

因为它帮你省掉的,不只是安装插件的时间,更是插件之间如何协同、默认键位怎么组织、功能入口怎么统一这些真正耗精力的部分。

在 CachyOS 上安装 LazyVim,门槛其实没有想象中高#

我最后决定直接覆盖现有配置,原因也很现实:这台机器上的 Neovim 本来就是刚装不久,历史包袱很轻,没有必要为了“保守”而额外维持两套配置。

LazyVim 官方要求的环境并不夸张,放到 CachyOS 这种 Arch 系发行版里,核心上就是这些东西:

  • neovim
  • git
  • curl
  • fd
  • ripgrep
  • fzf
  • lazygit
  • tree-sitter-cli
  • base-devel
  • wl-clipboard
  • 一套 Nerd Font

对应到系统里,我最后直接装的是:

Terminal window
sudo pacman -S --needed neovim neovide git curl unzip fd ripgrep fzf lazygit tree-sitter-cli base-devel wl-clipboard ttf-jetbrains-mono-nerd stylua shfmt

严格来说,styluashfmt 不是安装 LazyVim 的绝对前提,但它们很常出现在默认工具链里,提前装上能少掉一些首次启动时的等待和不确定性。

覆盖安装的步骤很简单,但备份仍然值得做#

虽然我最后走的是直接覆盖路线,但真正执行之前,我还是把原来的目录完整备份了一份。

这一点很重要,因为 Neovim 不只是一份 ~/.config/nvim,还有插件、状态和缓存目录。

实际处理时,至少应该考虑这几块:

Terminal window
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak
mv ~/.local/state/nvim ~/.local/state/nvim.bak
mv ~/.cache/nvim ~/.cache/nvim.bak

然后再把 LazyVim Starter 克隆到默认位置:

Terminal window
git clone https://github.com/LazyVim/starter ~/.config/nvim
rm -rf ~/.config/nvim/.git

做完这一步,第一次启动 nvim 时,它就会自动拉取整套插件。

一个很容易被忽略的问题:装完 LazyVim 之后,Neovide 还能不能继续用#

答案是能,而且这是这套组合里最顺的一部分。

因为 Neovide 并不会维护一套和 Neovim 平行的编辑器配置。它读取的,仍然是默认的 ~/.config/nvim

所以在覆盖安装 LazyVim 之后:

  • 运行 nvim,进入的是 LazyVim
  • 运行 neovide,进入的也是 LazyVim

Neovide 管的是图形壳子,LazyVim 管的是编辑器内部体验。两者并不冲突,反而是天然可以叠在一起的。

对我来说,这也是这次迁移最舒服的一点:我不用在“继续用 GUI” 和 “切到一套更完整的 Neovim 配置”之间二选一。

真正的迁移成本,不在安装,而在重新适应默认工作流#

回头看,真正花时间的部分其实不是安装命令本身。

安装 LazyVim 这件事,从准备依赖到替换默认目录,再到第一次启动完成初始化,整体并不复杂。真正需要重新适应的,是它默认的工作流:

  • :Lazy 管插件
  • :Mason 管 LSP 和外部工具
  • :LazyExtras 管额外语言能力
  • lua/plugins/ 用来做自定义覆盖
  • lua/config/ 用来放自己的选项、快捷键和自动命令

也就是说,LazyVim 的成本更像是“理解一套现成的组织方式”,而不是“从零写一套配置系统”。

这一点对新手或者回坑用户其实是有利的。因为你不需要一上来就做架构设计,只需要先学会它默认给你的那一套路径是怎么运转的。

这次折腾让我更确定:回坑阶段,优先选一条能快速稳定工作的路#

如果现在让我给几天前的自己一句建议,大概会是:

先别急着证明自己能从零拼出一套 Neovim 配置,先让它稳定、顺手、能连续工作。

Neovim 生态当然很适合折腾,但在重新上手的阶段,最容易把人劝退的往往不是功能不够,而是你每走一步都得先决定架构、选插件、抠按键、查兼容性。

LazyVim 的价值就在这里。它并不是替你取消理解成本,而是把一部分“高频但低价值的重复决策”提前做掉,让你把精力留给真正需要自己决定的部分。

而 Neovide 则刚好补上了另一个我很在意的现实需求:我依然可以在一个更舒服的 GUI 里使用这整套配置,而不是为了“纯粹”退回到完全终端化的体验。

对现在的我来说,这个组合非常合理:

  • 用 Neovide 解决 GUI 体验
  • 用 LazyVim 解决配置起步成本
  • 用 Neovim 本身继续保留可扩展性和可定制空间

这套组合未必是唯一正确答案,但至少它让我重新回到了一条可以持续使用、而不是只停留在研究阶段的路上。

在 CachyOS 上从 Neovide 起步,到切到 LazyVim
https://blog.yangyus8.top/posts/20260312-01/
作者
杨与S8
发布于
2026-03-12
许可协议
CC BY-NC-SA 4.0