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 with Termux

See termux nerd installer tool

Resources

Zero to IDE with LazyVim