My personal config for Neovim
This config is based on LunarVim/nvim-basic-ide
Install Neovim 0.7
You can install Neovim with your package manager e.g. brew, apt, pacman etc.. but remember that when you update your packages Neovim may be upgraded to a newer version.
If you would like to make sure Neovim only updates when you want it to than I recommend installing from source:
git clone https://github.com/neovim/neovim.git
cd neovim
git checkout release-0.7
make CMAKE_BUILD_TYPE=Release
sudo make install
Install the config
Make sure to remove or move your current nvim
directory
git clone https://github.com/willian/nvim.git ~/.config/nvim
Run nvim
and wait for the plugins to be installed
NOTE (You will notice treesitter pulling in a bunch of parsers the next time you open Neovim)
NOTE Checkout this file for some predefined keymaps: keymaps
Get healthy
Open nvim
and enter the following:
:checkhealth
You'll probably notice you don't have support for copy/paste also that python and node haven't been setup
So let's fix that
First we'll fix copy/paste
-
On mac
pbcopy
should be builtin -
On Ubuntu
sudo apt install xsel # for X11 sudo apt install wl-clipboard # for wayland
Next we need to install python support, node, and ruby:
-
Neovim python support
pip install neovim pip install pynvim
-
Neovim node support
npm i -g neovim
-
Neovim ruby support
gem install neovim
We will also need:
-
ripgrep
for Telescope to workbrew install ripgrep
-
lazygit
brew install lazygit
NOTE make sure you have node installed, I recommend a node manager like fnm.
Fonts
I recommend using the following repo to get a "Nerd Font" (Font that supports icons)
Configuration
LSP
To add a new LSP
First Enter:
:LspInstallInfo
and press i
on the Language Server you wish to install
Next you will need to add the server to this list: servers
Formatters and linters
Make sure the formatter or linter is installed and add it to this setup function: null-ls
NOTE Some are already setup as examples, remove them if you want
Plugins
You can install new plugins here: plugins
Plugins
- packer
- plenary
- nvim-autopairs
- Comment.nvim
- nvim-ts-context-commentstring
- nvim-web-devicons
- nvim-tree.lua
- bufferline.nvim
- vim-bbye
- lualine.nvim
- toggleterm.nvim
- project.nvim
- impatient.nvim
- indent-blankline.nvim
- alpha-nvim
- folke/which-key.nvim
- tokyonight.nvim
- darkplus.nvim
- Julpikar/night-owl.nvim
- nvim-cmp
- cmp-buffer
- cmp-path
- cmp_luasnip
- cmp-nvim-lsp
- cmp-nvim-lua
- LuaSnip
- friendly-snippets
- nvim-lspconfig
- nvim-lsp-installer
- null-ls.nvim
- vim-illuminate
- zbirenbaum/copilot.lua
- zbirenbaum/copilot-cmp
- telescope.nvim
- nvim-treesitter
- gitsigns.nvim
- nvim-dap
- nvim-dap-ui
- DAPInstall.nvim
- which-key.nvim
- todo-comments.nvim