Why Use NeoVim?
- I want to edit code remotely on a very lightweight machine over SSH
- I want to learn something new
- I don’t want to buy into Microsoft+Github ecosystem (see https://fosstodon.org/@[email protected]/111565769547027729)
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