Skip to content

AstroNvimλ︎

AstroNvim 4.x version supported

AstroNvim 4 has been reorganised to be a collection of packages with a user configuration.

🌐 AstroNvim is a community configuration with an engaging UI, using Lazy for plugin management (Neovim packages) and Mason for package management (LSP, DAP, format and lint tools)

Practicalli AstroNvim User Config is a user configuration that extends AstroNvim and imports packages from the AstroNvim Community.

Prerequisitsλ︎

  • Nerd Fonts version 3 - download a full font or only the symbols
  • fzf fuzzy finder (ubuntu archive)
  • gtu (Ubuntu package archive)
  • btm from GitHub repository releases
  • node.js (version 20) for Mason install of many LSP servers

AstroNvim requires node.js

AstroNvim uses Mason to install LSP servers, format and lint tools. Many LSP servers require node.js to install and function.

Node.js install - Practicalli Engineering Playbook

Kitty Terminal with Nerd Fonts

🌐 Kitty Terminal - Practicalli Engineering Playbook provides examples of using Nerd Fonts or Nerd Font symbols with the Kitty terminal.

Clone AstroNvim user configλ︎

AstroNvim is a template repository providing a user configuration that includes AstroNvim plugins.

AstroNvim Community configuration to make it easier to extend the feature of AstroNvim.

Practicalli AstroNvim User Config is a clone of the AstroNvim user config with additional configuration to support Clojure development.

Clone the Practicalli AstroNvim User Config which provides Clojure support on top of AstroNvim.

git clone http://github.com/practicalli/astronvim-user-config $HOME/.config/astronvim4

Create your own user configuration using the AstroNvim template repository to create a new GitHub repository.

Clone the newly created repository

git clone git@github.com/AstroNvim/template $HOME/.config/astronvim4

Configure shell aliasλ︎

Create a shell alias that sets NVIM_APPNAME to the location of the AstroNvim community config

Add alias to .bashrc for Bash shell or .zshrc for Zsh

alias astro="NVIM_APPNAME=astronvim4 nvim"

dot aliases file for both bash and zsh

Create a .config/aliases file containing all shell aliases when often switching between different shells, avoiding the need to define aliases twice

Source the .config/aliases file from within .bashrc and .zshrc

.bashrc
if [ -f ~/.config/aliases ]; then
    . ~/.config/aliases
fi
.zshrc
source $HOME/.config/aliases

Configure shell alias

Post installλ︎

Open a terminal and use the astro alias to run Neovim.

astro

Lazy package manager will run automatically and download all plugins. Treesitter languages are automatically installed.

q to close the lazy package manager popup.

NVIM_APPNAME=astronvim4 nvim to run Neovim with astronvim without setting a shell alias.

Neovim will open and display the Lazy plugin manager UI, showing the progress of plugin installation. This should only happen on the first run.

Unattended post install

Plugins can be installed without running the Neovim editor UI

NVIM_APPNAME=astronvim4 nvim --headless

Check Healthλ︎

Run the Neovim :checkhealth command to report on the general Neovim install and supporting tools

Add LSP DAP Lint and Format toolsλ︎

SPC p m to launch Mason which manages LSP servers, linters, filters ...

AstroNvim packages - mason all installed

Configure format rulesλ︎

The configuration files for each lint and format tool should be used by Neovim.

Setting a different location for these files has proved challenging. plugin/null-ls.lua has a section to override its builtin configuration for each lint and format tool, however, in tests Practicalli was unable to succeffuly set a different location.