使用null-ls来统一neovim的格式化方案
2月1日 / 2月1日
巨硬家编辑器`vscode`
在打开大型项目时,无论启动速度还是补全速度都非常地拉胯,因此还是决定将主力编辑器切换为`neovim`
,配置好后,搭配上`tmux`
,在终端下的体验非常的丝滑。
这里我并没有从 0 开始进行配置,GitHub 上有很多不错的现成解决方案,这里我直接使用了nvimdots方案。该方案使用efm通用语言服务器作为格式化的解决方案,但是我觉得`efm`
的配置还是太过零散,像`go`
、`rust`
都在自己官方内置的 LS 中自带了格式化工具,而`json`
、`sh`
等不自带的就需要交给`efm`
来进行格式化,这样其实显得割裂,而操作起来还是比较繁琐,配置和修改都比较麻烦。
相比于`efm`
, 这里我比较推荐的是null-ls,作为一个和`efm`
功能相似的替代品,它支持更加统一的配置方案,无论是`go`
、`rust`
,还是`json`
、`sh`
等。它支持大部分主流语言的格式化方案,基本只需要进行很少的配置。所以,现在我的`neovim`
格式化方案都统一交给`null-ls`
来解决,不再考虑各种语言官方的 LS 是否自带格式化工具。此外,另一个比较吸引我的是,它可以轻松的配置多个格式化工具对文件进行链式格式化。对于`go`
这种需要多个格式化工具的语言来说,在使用`null-ls`
的方案下,可以轻松实现`gofumpt -> goimports -> golines`
的链式格式化方案,不用手敲命令行,体验还是非常地不错。
cd ..