bcampolo / nvim-starter-kit

Neovim Starter Kit
MIT License
180 stars 31 forks source link

Neovim Starter Kit πŸ•Ήβš‘πŸ€–

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

YouTube Guide for this Starter Kit


Prerequisites

Optional


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!


Setting up Neovim using this Starter Kit

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

Instructions

Starter Kit Structure

β”œβ”€β”€ .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)

Additional Resources

Suggestions / Pull Requests

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.

Starter Kit Variants