Why Use NeoVim?

Installing NeoVim

See instructions here - I wanted to make it available globally on my system:

Grabbing the AppImage

sudo -s
mkdir -p /opt/nvim
curl -LO curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz
tar -C /opt/nvim -xzf nvim-linux64.tar.gz

Adding to Shell PATH

I use ZSH so I want to add nvim to my ~/.zshrc:

export PATH=/opt/nvim/bin:$PATH

I can reload my zsh config with source ~/.zshrc or open a new terminal.

LazyVim

LazyVim is a package of neovim plugins

Installing LazyVim for the First Time

Essentially we want to follow the instructions from LazyVim in the official lazyvim installation docs :

Back up the existing neovim stuff

# required
mv ~/.config/nvim{,.bak}
 
# optional but recommended
mv ~/.local/share/nvim{,.bak}
mv ~/.local/state/nvim{,.bak}
mv ~/.cache/nvim{,.bak}

Clone the project

git clone https://github.com/LazyVim/starter ~/.config/nvim

Remove the existing git folder and reinitialise ready to store in our own git project

rm -rf ~/.config/nvim/.git
cd ~/.config/nvim
git init
git remote add origin <your-git-project>

Using which-key

which-key allows you to navigate around the different menus and settings inside neovim and access plugins etc. By default it is mapped to <space> when not in editing mode.

Mason

Mason is used for managing language server runtimes. Access it by typing <space> c m

LazyExtras

use the command :LazyExtras to install a bunch of language runtimes out of the box without the need to use mason or do any manual config

”AI Assistant” Support

Using LSP-AI

Using with Termux

See termux nerd installer tool

Resources

Zero to IDE with LazyVim