AstroNvim 简介
AstroNvim 是一个功能丰富、扩张性好的 Neovim 配置集。
依赖
- Nerd Fonts: 是一个字体补丁
- Neovim 0.9.5+
- Tree-sitter CLI: 可以启用 auto_install 功能来自动安装对应语言的 treesitter 解析器
- 系统剪切板工具,可以通过
:help clipboard-tool
查看 - ripgrep: 更好的 grep 工具
- lazygit: 终端下的 git 管理工具
- Python 和 Nodejs 运行环境,以及 neovim 库
Tips
其他插件可能也需要对应的依赖,这些可以通过 :checkhealth
命令来检查
AstroNvim 安装
AstroNvim 和其他 Neovim 配置集都不太一样,其他都是添加各种插件来作为一个配置使用,而 AstroNvim 中将配置本身都作为一个插件提供,目前提供了四个核心插件:
- astrocore: 提供了对自动命令、vim选项、全局映射、项目根检测和会话管理等功能
- astroui: AstroNvim 的统一界面,例如图标、状态栏、winbar、tabline 等
- astrolsp: AstroNvim 的 LSP 功能配置
- astrotheme: AstroNvim 默认主题
Tips
他们统一由AstroNvim管理。
而其他插件由社区提供,AstroNvim 同样提供了一个插件来管理他们:
- astrocommunity: 在 AstroNvim 中引入其他插件的方式
因此我们安装 AstroNvim 就是通过 Lazy 来安装上面的插件即可,他们会自动帮助我们安装其他插件,不过为了方便 AstroNvim 提供了一个模版来方便我们安装,因此只需要:
Bash
git clone --depth 1 https://github.com/AstroNvim/template ~/.config/nvim
rm -rf ~/.config/nvim/.git
该模版的目录架构也比较简单:
Bash
/home/yangguodong/.config/nvim/
├── init.lua # lazy 插件管理器自动安装
├── lazy-lock.json
├── lua
│ ├── community.lua # 安装和配置 astrocommunity, 如果要引入 community 先从这里开始
│ ├── lazy_setup.lua # 设置 lazy 以及安装 AstroNvim 插件
│ ├── plugins # 特定插件的配置
│ │ ├── astrocore.lua # 核心插件
│ │ ├── astrolsp.lua # lsp 插件
│ │ ├── astroui.lua # UI 插件
│ │ ├── mappings.lua # 自定义映射
│ │ ├── mason.lua # 自动安装 LSP 服务器
│ │ ├── none-ls.lua # lsp 相关
│ │ ├── treesitter.lua # treesitter 相关
│ │ └── user.lua # 用户特定配置,例如 community 中没有的插件需要手动安装
│ └── polish.lua # 他会在最后被执行,是覆盖一些默认的配置的好地方
└── README.md
AstroNvim 配置
AstroNvim 包含四个核心插件用于对编辑器进行配置:
- astrocore: AstroNvim 的 Core,配置了自动命令、基础设置、默认映射、统一界面(tabline 等)、项目根检测和会话管理等功能
- astrolsp: AstroNvim 的 LSP 功能配置
- astroui: AstroNvim 的统一界面
- astrotheme: AstroNvim 默认主题
- astrocommunity: 启用社区插件
- user: 用户自定义插件
Tips
他们都是围绕Lazy这个插件管理器构建的。