Skip to content

Install Neovim and Supporting Toolsλ︎

Neovim Logo

Neovim 0.10.x is the latest stable version

Suppoting Toolsλ︎

Neovim uses several command line tools for searching for files and their contents, using the operating system clipbaord and compiling Treesitter language parsers.

Install the following tools to support Neovim and AstroNvim

  • ripgrep fast file contents search (used by telescope)
  • find-fd advanced search tool
  • xclip x11 clipboard as a provider for Neovim copy/paste (Linux only)
  • luarocks for LSP servers (AstroNvim)
Treesitter requires a C compiler

nvim-treesitter requires a C compiler , e.g. gcc for Linux or clang for android/termix

The C compiler is used to compile langauge support for treesiter.

AstroNvim requires node.js

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

Node.js install - Practicalli Engineering Playbook

apt install fd-find xclip luarocks nodejs
Wayland requires wl-clipboard

Install the wl-clipboard package to use the Wayland desktop clipboard with Neovim

apt install wl-clipboard

MacOSX requires the libintl and gettext tools as well as the other supporting tools.

brew install libintl gettext ripgrep fd luarocks

Install Neovimλ︎

Install from the Neovim GitHub releases for the latest version of Neovim, or use a Package manager for the operating system.

Download the Linux AppImage from the Neovim Release page and place the file on the executable path, e.g. $HOME/.local/bin

Make the AppImage executable

chmod u+x $HOME/.local/bin/nvim.appimage

Create a symbolic link called nvim to the nvim.appimage file.

ln -s $HOME/.local/bin/nvim.appimage $HOME/.local/bin/nvim

nvim command can now be run in a terminal from any directory.

Install from Homebrew or via the Neovim Release page

Homebrew

brew install neovim

Neovim Release

Download nvim-macos.tar.gz From the Neovim GitHub release page

Avoid "unknown developer" warning from MacOSX

xattr -c ./nvim-macos.tar.gz

Make a local apps directory for neovim (and other things like node.js, etc.)

mkdir -P ~/.local/apps

Extract the neovim archive

tar zvxf nvim-macos.tar.gz -C ~/.local/apps/

Create the ~/.local/bin/nvim symbolic link to include Neovim on the OS execution path

echo $PATH to check .local/bin is included in the execution the path by the Operating System command line shell

ln -s ~/.local/apps/nvim-macos/bin/nvim ~/.local/bin/nvim

Run nvim (or setup a Neovim configuration first, e.g. AstroNvim)

From the Neovim GitHub release page:

  1. Install libintland gettext (e.g. via brew install libintl gettext)
  2. Download nvim-macos.tar.gz
  3. Run xattr -c ./nvim-macos.tar.gz (to avoid "unknown developer" warning)
  4. Make local apps directory for neovim (and other things like node.js, etc.)
mkdir -P ~/.local/apps
  1. Extract the neovim download
tar zvxf nvim-macos.tar.gz -C ~/.local/apps/
  1. Create nvim symbolic link in ~/.local/bin to include Neovim on the OS execution path (check .local/bin is added to the execution the path by the Operating System command line shell)
ln -s ~/.local/apps/nvim-macos/bin/nvim ~/.local/bin/nvim

Linux version only packaged as AppImage from Neovim 0.9 onward

A .deb file can be created after building Neovim from source.

Neovim build guide

Neovim Build Prerequisites for each operating system

Debian Packages

Install packages to support building Neovim

sudo apt-get install ninja-build gettext cmake unzip curl

Clone the Neovim GitHub repository

git clone --origin neovim https://github.com/neovim/neovim.git

Change into the cloned directory and change to the stable release to build version 0.9.0

git checkout stable

Build a release

make CMAKE_BUILD_TYPE=Release

Once the nvim release has been built, create a debian package for use with Ubuntu and Debian systems

cpack -G DEB

Practicalli Astro Configλ︎

Practicalli Logo Practicalli Logo

Practicalli Astro is Clojure development focused configuration, an extension of the AstroNvim template repository.

Clone the Practicalli Astro config or create your own fork and clone that repository.

Clone Practicalli Astro config

git clone https://github.com/practicalli/astro.git ~/.config/nvim
Multiple Neovim Configurations

Clone the configuration to a unique name within ~/.config directory.

git clone https://github.com/practicalli/astro.git ~/.config/nvim-astro

Set the NVIM_APPNAME environment variable to the configuration directory name under ~/.config

e.g. Run Neovim using the configuration in ~/.config/astro

export NVIM_APPNAME=nvim-astro nvim

Configure shell alias and selectors to simplify the command to run a specific configuration.

Practicalli Astro design & override guide

Install Neovim Pluginsλ︎

Enter nvim command in a terminal to launch Neovim and install all the plugins from the Practicalli Astro configuration.

Run Neovim

nvim

Lazy plugin manager runs automatically and installs all the plugins defined in the Neovim configuration.

Treesitter will prompt to compile its language parsers.

q to close the lazy package manager pop-up once all plugins are installed.

Plugin install without UI display

Use the --headless Neovim flag to install plugins without running whole Neovim editor user interface.

nvim --headless

Post Install checksλ︎

Troubleshoot the Neovim configuration and supporting tools by running the 🌐 Neovim Heath Check.

Use the :checkhealth command in Neovim or start Neovim with the Health Check command.

Run Neovim and start Health Check

nvim +:checkhealth

A report is generated and shown in Neovim

j / j to scroll through the checkhealth report

Review the warnings and install tooling that is required for languages that will be used.

NeoVim checkhealth report NeoVim checkhealth report

Ignore Provider Warnings

It is safe to ignore language provider warnings.

Language Providers can be disabled in the Neovim configuration to remove the warnings from :checkhealth report.