/nvim

NeoVim setup

Primary LanguageLua

A Basic unstable IDE config for Neovim

Why does this repo exist?

Because I forked https://github.com/LunarVim/nvim-basic-ide and removed the stable commit hashes. Why? Because I'm insane.

Added the following plugins:

  • gruvbox
  • vim-test
  • which-key
  • vim-tmux-runner
  • telescope-dap

Setup debugging with Node.js and Mocha:

  • Open test file and navigate to test to debug set breakpoint <space>db
  • Launch specific test using <space>tt
  • Get DAP to connect using <space>dc
  • Select attach process
  • Open DAP UI using <space>du
  • Forward to breakpoint <space>dc

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/LunarVim/nvim-basic-ide.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 is optional)

  • Neovim python support

    pip install pynvim
  • Neovim node support

    npm i -g neovim

We will also need ripgrep for Telescope to work:

  • Ripgrep

    sudo apt install ripgrep

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)

getnf

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


The computing scientist's main challenge is not to get confused by the complexities of his own making.

- Edsger W. Dijkstra