Neovim IDE 搭建系列(01)

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 基本配置项的文件

部分功能展示

目录树、重做树、大纲预览、各种终端:

Neovim IDE 搭建系列(01)

语法提示、代码补全、工作区诊断、问题跳转:

Neovim IDE 搭建系列(01)

代码调试:

Neovim IDE 搭建系列(01)

代码快速格式化:

Neovim IDE 搭建系列(01)

自定义代码片段(和 vscode 一样的配置方式,很方便):

Neovim IDE 搭建系列(01)

tabnine 和 git copilot 等 AI 代码补全:

Neovim IDE 搭建系列(01)

快速跳转到词、行、列:

Neovim IDE 搭建系列(01)

项目模糊查找、文件查找、标签查找:

Neovim IDE 搭建系列(01)

各种漂亮的主题:

Neovim IDE 搭建系列(01)

Neovim IDE 搭建系列(01)

上一篇:python PIE游戏


下一篇:自动旋转的饼图(echarts)