将Neovim配置迁移至Nix:构建可靠开发环境

本文详细介绍了如何将Neovim配置从传统方式迁移到Nix包管理器,包括插件管理、语言服务器集成和安全加固,实现了可重复构建的可靠开发环境配置方案。

将我的Neovim配置迁移到Nix

最近我一直在学习Nix。起初我的印象并不好:它能提供什么Docker做不到的东西?然后我走向了另一个极端:现在我到处都能看到它的实用性。

我有一个用于设置开发环境的dotfiles仓库。其中一部分是我的neovim配置。多年来我不断为其添加各种内容:插件、键位映射、语言服务器,以及一些自定义配置。

尽管dotfiles应该安装所有内容,但neovim在初次使用时总是出现问题,我需要修复它。这是因为它使用了大量不同的组件:

  • Vim plug安装当前版本的插件
  • Mason安装语言服务器
  • 插件需要工具,例如Telescope需要ripgrep,gitsigns需要git

Nix的承诺是,我可以获得一个可靠包含nvim所需所有内容的二进制文件。它管理插件、语言服务器、编译器以及插件需要的所有其他工具。

刚开始我有点害怕,因为有传闻说连更熟悉Nix的人都失败了。但过去几周我有些空闲时间,就决定尝试一下。

结果:我有了一个可工作的nvim配置,并且已经在日常使用中作为主力。令人惊讶的是,这比预期要容易得多:我使用的所有插件在Nixpkgs中都有提供。

有了这个,我可以执行nix-build,然后使用result/bin/nvim启动。我在shell中为其设置了别名,这样nvim也能正常工作。

作为一个额外的好处,我可以用它配置Landlock。默认情况下,它只能访问当前目录、少数额外文件,并且没有网络访问权限。这应该能限制各种插件和工具可能造成的损害。

到目前为止,我对这个结果很满意。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计