Neovim IDE 搭建系列(01)
前言
我是一名 Python 开发者,最早的时候使用 Pycharm 进行开发,后来大概使用了一年多的 vscode,由于受不了 vscode 以及 Pycharm 的卡顿,所以在不久前我转到了 neovim 阵营。
得益于 LSP 以及 DAP 的加持,目前 neovim 的编码体验已经不输于 vscode 了,高效的全键盘操作能够让你的思维不会因为寻找鼠标而中断,这也是我热爱 neovim 最重要的一个原因。
鉴于目前这部分中文资料较少,所以在此想对加入 neovim 大家庭而又畏惧繁琐配置的朋友提供一份快速搭建的指南,如果您觉得这个系列对您有帮助,不妨点个关注 ~
预计在未来一周内将会全部更新完毕,感谢阅读。
配置范围
个人平常会使用的语言如下,如果你也使用这些语言,那么是完全可以用 neovim 进行开发的:
- Python3
- Golang
- Lua
- NodeJs
- HTML
- CSS
- JavaScript
- TypeScript
- Vue
拟定目录
配置过程大概分为以下几个步骤:
- 基本配置
- 美化配置
- 编辑配置
- 功能配置
- LSP 配置
- DAP 配置
- 其他配置
刚好 7 天,一天一个板块,目前我的插件数量是 68,没做任何优化,在 16 年的老电脑上启动时间大约 100 毫秒,比 vscode 快了很多倍。
准备工作
在开始之前,需要确保安装以下一些外部依赖:
- neovim(至少大于 0.5 版本)
- python3 以及 pip3
- tar、curl、git、gzip、wget
- gcc 以及 g++ (用于 nvim-treesitter 的依赖安装)
- nerd font(正确显示图标)
- node 以及 npm(用于 LSP 服务,可选)
- fd 以及 ripgrep (用于 telescope 模糊查找)
- sed (用于 nvim-spectre 的全局字符串替换)
由于我使用的是 Linux (manjaro),所以安装它们都非常简单,推荐 windows 用户在 WSL 下安装,这样会省掉很多繁琐的步骤。
配置目录
neovim 现在支持 vimscript 和 lua 这 2 种语言书写配置,个人使用纯 lua 语言,它能够更加方便的管理多个插件。
neovim 的配置文件放在 ~/.config/nvim/init.lua 中,可按照下面的目录结构创建相关目录:
/home/askfiy/.config/nvim
├── init.lua
├── ftplugin/
├── lint/
├── lua/
│ ├── basic/
│ │ ├── config.lua
│ │ ├── keybinds.lua
│ │ ├── plugins.lua
│ │ └── settings.lua
│ ├── conf/
│ ├── dap/
│ └── lsp/
└── snippet/
目录说明:
- ftplugin:根据不同的文件类型来定义缩进规则
- lint:各种语言的代码检查规范,如 pylint 等文件存放在此目录下
- basic:存放基本配置项
- conf:存放插件相关配置
- dap:存放 DAP 相关配置
- lsp:存放 LSP 相关配置
- snippet:存放代码片段相关配置
文件说明:
- init.lua:配置入口文件
- config.lua:存放用户自定义配置的文件
- keybinds.lua:存放键位绑定的文件
- plugins.lua:存放依赖插件的文件
- settings.lua:存放 neovim 基本配置项的文件
部分功能展示
目录树、重做树、大纲预览、各种终端:
语法提示、代码补全、工作区诊断、问题跳转:
代码调试:
代码快速格式化:
自定义代码片段(和 vscode 一样的配置方式,很方便):
tabnine 和 git copilot 等 AI 代码补全:
快速跳转到词、行、列:
项目模糊查找、文件查找、标签查找:
各种漂亮的主题: