This is my personalized Neovim Starter Kit. IMO it is a very well structured, clean configuration for getting started with Neovim. It uses the lazy.nvim package manager, which allows plugins to be added simply by dropping a plugin spec file into your plugins folder. Each plugin file in my configuration is well commented and you can remove any plugin file that you don't need or want. A lot of Neovim users recommend kickstart.nvim, which I agree is a great resource due to its simplicity, but I believe this Starter Kit directory structure is much easier to maintain in the long run.
DISCLAIMER: These configurations are based on my personal dev setup and may not be right for everyone. I take no responsibility for the endless hours of Neovim configuration you are about to embark on and the unhealthy bond that you will form with your editor. Proceed at your own risk!
YouTube Guide for this Starter Kit
set -o vi
NOTE: I do all of my development on a Debian/Ubuntu based Linux distro, so while most of this README will still work on other operating systems, it is geared towards my own dev environment. If you are using a Mac, your mileage may vary (you Kool-Aid-drinking, hipster Apple fanboi). If you are using Windows, I'll see you in Hell!
After installing all of the prerequisites, you can start Neovim by running nvim
to make sure it works. This will be the ugly vanilla configuration before adding any themes/plugins. If you are new to vim/nvim and got yourself trapped, you can quit with :q
If you are NOT starting from scratch and want to replace your current Neovim configuration, make a backup first:
# Backup your existing Neovim configuration
mv ~/.config/nvim{,.bak}
# Backup your existing Neovim cache/state (optional but recommended)
mv ~/.local/share/nvim{,.bak}
mv ~/.local/state/nvim{,.bak}
mv ~/.cache/nvim{,.bak}
Clone the Starter Kit (if you didn't make a backup, this will replace your existing Neovim config)
# Make git subdirectory in your home directory
mkdir ~/git
cd ~/git
# Clone Starter Kit into your git directory
git clone https://github.com/bcampolo/nvim-starter-kit
# Make the Neovim configuration directory
mkdir -p ~/.config/nvim
# Copy the Starter Kit Neovim configuration to your Neovim configuration
cp -r ~/git/nvim-starter-kit/.config/nvim/* ~/.config/nvim/
Start Neovim π
nvim
Once Neovim is started, you may see a number of messages from Lazy, Mason and Treesitter installing plugins, LSP servers, and syntax highlighting. You may see some initial errors. There may be plugins that are still installing. Press enter if instructed to. Wait a bit for everything to finish installing. Press q to close the Lazy UI. Once everything is done installing, quit and restart Neovim one more time.
Now everything should be setup, but it is possible that some plugins are not working correctly. Run :checkhealth
from within Neovim and investigate any errors that you encounter.
βββ .config
β βββ nvim
β βββ ftplugin
β β βββ markdown.lua # Add files here in the form filetype.lua
β β βββ ... # to change options based on file type (not extension)
β βββ lua
β β βββ core
β β β βββ keymaps.lua # This configures all of your key bindings
β β β βββ options.lua # This configures all of your global Neovim options
β β βββ plugins
β β βββ autopairs.lua # Plugins can be added / removed from Neovim by
β β βββ ... # adding / removing plugin files to this directory
β β βββ vim-tmux-navigator.lua
β βββ init.lua # This is the main Neovim configuration file
β βββ lazy-lock.json # This locks your plugins to specific versions/commits
βββ .mime.types # Fixes a Linux/Firefox issue to view local markdown (optional)
βββ .tmux.conf # This is my tmux configuration (optional)
If you run into any issues or have any suggestions for plugins that you feel should be part of the Starter Kit, open a PR that includes the updates and I'll review/merge it as soon as I can.