在 2020 年时间我就接触了 Neovim,在这一段时间,我一直使用的是 coc.nvim,coc.nvim 陪我度过了我成长的时期。也许是因为换回了 windows 系统,并且 windows 系统下的 terminal 真的很不好用,所以这几年就没有怎么用过 Vim 了。我很喜欢 Vim 哲学和 Vim 的键盘体验 也很喜欢 VsCode。
在这几年之间我也陆续看到类似于 NvChad、LunarVim、AstroNvim、LazyVim 等 Neovim distros,本文作为重返 Neovim 的记录。
重拾配置
我的 GitHub 仓库中一直保留着我的 Neovim 配置,当时使用的配置如下:
1 | " 插件设置 |
其中最核心的插件是 coc.nvim,它也相当于一个插件系统(用插件管理器安装插件管理器),coc.nvim 的目标是 Make your Vim/Neovim as smart as VS Code
。
随着 Neovim 社区的发展,有很多懒人包被开发了出来,像是 23 年出来的 LazyVim 的涨星速度比同类的开源项目都要快。于是我尝试了一下 LazyVim 果断抛弃了 coc.nvim。
为什么不继续使用 coc.nvim 了?
- coc.nvim 需要 Node.js 依赖。
- coc.nvim 不够懒,没有针对 coc.nvim 所开发的 Neovim distros。
- nvim 的插件系统已经可以完全替代 coc.nvim 了。
LazyVim 的安装
直接将懒人模板克隆到 nvim 配置目录就可以了。
1 | git clone https://github.com/LazyVim/starter ~/.config/nvim |
LazyVim 的使用
打开 Neovim,输入 :Lazy
就可以进入 LazyVim 的管理面板,这里可以看到已经安装好的插件、插件是否有更新等等。
LazyVim starter template(懒人模板)默认帮你安装了这些插件。注意不要被 Keymaps 所误导,Keymaps 是 LazyVim 提供的所有插件的快捷键速览(包括非默认安装的插件,也就是 LazyVim Extras 扩展插件等)。
编程语言支持
LazyVim starter template 还提供了扩展配置(LazyVim Extras),LazyVim Extras 其实是一组插件的集合(这和 VsCode 中的 Extension Pack 是一样的),这其中包括了依赖管理、提供了默认配置等功能。
比如我需要安装 Python 环境的支持, 输入 :LazyExtras
然后找到 lang.python
就可以一键安装 Python 开发所需要的一系列扩展。具体的实现可以查看 LazyVim Extras 的源码。
自定义配置
Plugins
通过 LazyExtras 安装 Python 语言支持,发现 venv-selector 无法找到 miniconda 的虚拟环境。
1 | { |
查看源码我们可以发现,LazyVim 默认使用的是 venv-selector.nvim 中的 regexp 分支。于是我们到 Github 查看这个分支看到了 My venvs dont show up - how can i create my own search? ,根据 README 在 ~/.config/nvim/lua/plugins
下面新建一个 venv-selector
的配置即可,LazyVim 会自动的将配置文件 Merge,所以不用担心你会修改到 LazyVim 的默认配置!
按键映射
修改按键映射也很简单,在 ~/.config/nvim/lua/config/keymaps.lua
添加自己的配置即可。
继续探索吧
想要更好的使用 Neovim 当然还需要熟悉 LazyVim 帮你安装的各类默认插件是干嘛的,了解 Vim/Neovim 圈子的生态等等,这都是值得花一番时间去学习的。