A super opinionated starter to get up and running with NeoVim exactly like I do.
You will need to make sure you have the appropriate language servers installed. My settings expect gopls
, eslint
, and tsserver
. If you do not have these installed globally on your local machine, you'll need to do so before following the quick start.
go install golang.org/x/tools/gopls@latest
npm install -g eslint
npm install -g --save typescript
brew install neovim
mkdir $HOME/.config/nvim/ && cd $HOME/.config/nvim
git clone https://github.com/doomtickle/nvim .
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
nvim +PlugInstall +qall
Daronatron Nvim is comprised of all the Neovim settings, themes, plugins, and keybindings that I use in my daily workflow. It is meant as a reference or jumping-off-point for anyone looking to have a modern, solid Neovim setup with little to no effort.
I have tried to comment all of the config files extensively so that you may remove anything that is not to your taste. I frequently change things in here and am not always great about documenting them.
You have been warned.
To get the most out of this setup, you should familiarize yourself with the Neovim docs as much as possible.
The first file that Neovim calls is init.vim
. The init.vim
in this repo sources other files in the directory.
This gives us some separation between the various parts of our vim config and allows us to maintain them easier.
We'll go over each of them below.
As its name implies, this is where we'll list any plugins that we'll want to include on startup.
This package assumes you will use vim-plug as a plugin manager.
If you would like to change this, simply edit your plugins.vim
to reflect the requirements of your package manager.
The plugins used in the current setup are:
- plenary
- vim-prettier
- telescope
- nvim-lspconfig
- cmp
- cmp-lsp
- vim-closetag
- auto-pairs
- luasnip
- nerdtree
- nerdtree-git-plugin
- vim-devicons
- nerdtree-visual-selection
- vim-airline
- vim-airline-themes
- vim-surround
- vim-mdx-js
- nvim-treesitter
- blamer.nvim
- vim-commentary
The configuration and keybindings for these plugins live in various places throughout the repo, but for the most part have been taken directly from each plugin's documentation.
Handles getting a sane starter with all the stuff like I like. This is also where I set the <leader>
key to <space>
.
To see what other options you have, visit the Neovim docs or type :help nvim
from inside Neovim.
Where I have the configs, scripts, and (some) keybindings for my plugins.
Some knowledge of lua is required.
Where you will create autocommands and groups of autocommands to run during certain events that neovim fires. The world is your oyster here. I've added a single group to this repo, but the idea is to group your autocommands by event and source them from higher up in the tree. More to come on this...
Neovim allows you to set global variables that your plugins and scripts can look up at any time. I've separated this out and commented it heavily so you can see what's going on.
Keybinding | Description |
---|---|
<leader>; | Go to next buffer |
<leader>a | Go previous buffer |
<leader>vs | Split screen vertically |
<leader>w | Force save buffer |
<leader>q | Force save buffer and exit |
<leader>- | Delete current buffer without saving |
<leader>b | Search open buffers |
<leader>f | Search files (respects .gitignore) |
<CTRL+[h,j,k,l]> | Navigate split windows |
- | Toggle NerdTree |
Currently comes with two colorschemes. A light colorscheme that I based off of vim-colors-github, with a few modifications, and a dark theme based on OneDark.
To switch colorschemes, type :colo [color_file_name]
from inside nvim. For example:
:colo onedark