将我的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。默认情况下,它只能访问当前目录、少数额外文件,并且没有网络访问权限。这应该能限制各种插件和工具可能造成的损害。
到目前为止,我对这个结果很满意。