Zwlin's Blog

2022年的 neovim 配置方案

2022/05/17

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

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

大致目录结构

 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 有关的插件,性能更强,速度更快。

参考资料