Skip to content

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 同样提供了一个插件来管理他们:

因此我们安装 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这个插件管理器构建的。