Zwlin's Blog

2022 年的 neovim 配置方案

Last updated: 2023/09/04     Published at: 2022/05/17

2023-10-17 更新 新文章

2023-09-04 更新

这篇文章已经过时,最近插件管理器 packer 作者弃坑,我也顺势转到了 lazy.nvim. 因此文章也许要作出相应的更新,之后会更新一篇更新的 neovim 配置方案,不过 repo 中的配置是实时更新的, 读者可以直接参考, 配置思路和这篇文章是类似, 主要变化就是迁移了插件管理器,并增删了一些插件.

2022-10-24 (更新分支 no-lsp)

在前不久,我把我的 nvim 配置从 vimscript 全部迁移到了 lua。故在此记录一下我的 neovim 配置方案。

大致目录结构

 1# ~/.config/nvim
 2.
 3├── init.lua
 4├── lua
 5│   ├── basic.lua
 6│   ├── colorscheme.lua
 7│   ├── keybindings.lua
 8│   ├── lsp
 9│   │   ├── go.lua
10│   │   ├── haskell.lua
11│   │   ├── lua.lua
12│   │   ├── null-ls.lua
13│   │   ├── nvim-cmp.lua
14│   │   ├── python.lua
15│   │   ├── setup.lua
16│   │   └── ultisnips.lua
17│   ├── plugin-config
18│   │   ├── bufferline.lua
19│   │   ├── dashboard.lua
20│   │   ├── indent-blankline.lua
21│   │   ├── mundo.lua
22│   │   ├── nvim-tree.lua
23│   │   ├── transparent.lua
24│   │   ├── treesitter.lua
25│   │   └── vista.lua
26│   └── plugins.lua
27├── python-nvim
28└── README.md

插件

我用的插件不是很多,这次变更是一次重大变化,几乎全部插件都改用了使用 lua 编写的,插件管理器用的是大家的主流选择 Packer

简要说明下一些非常有意思的插件:

LSP 与代码补全

lsp 和代码补全的配置估计是我折腾 neovim 插件的最复杂的地方,不过在 neovim 官方出品了 lsp 的集成插件以及有了非常强大 nvim-cmp 的之后,在我的更新配置体验中,没有特别复杂的部分,根据文档即可完成配置。

LSP 的各种设置都放在了 lsp 文件夹中,入口文件是 setup.lua,没有什么特别的配置,有兴趣的直接可以参考我的 nvim 配置

我的 nvim 配置放在了 github,应该会随着我的使用更新,不保证会和写下此文时一致。

NO-LSP 版本

发现了新的需求,在一些不需要编辑代码、只需要修改部分配置文件,或者配置非常差的机器上不需要 lsp 的支持,故而新建了 no-lsp 分支删去了部分和 lsp 有关的插件,性能更强,速度更快。