/nvim-setup

neovim config (upstreamed into dotfiles instead - use that)

Primary LanguageLuaMIT LicenseMIT

Neovim Setup

Matt's configuration for neovim 0.9.0.

Built off Ethan's vim config with some changes to my liking and explicit support for Linux, plus a whole lot more plugins (I love plugins!) - so do expect longer boot times.

Big thanks again to Ethan for the original config and getting me into Neovim.

There used to be a list of plugins/themes here, but there's so many now it's gotten out of hand. I guess RTFL (read the flipping Lua!!!!!).

Installation

This repo is mainly managed as a submodule through the dotfiles repo. You should clone that repo, and edit the config/nvim repo directly as a submodule. Then follow the instructions there to install the dotfiles. Once that's done:

  1. Install the latest stable Neovim (currently 0.9.0 as of 27 May 2023).
  2. (If using nvm.fish): Edit ~/.config/fish/config.fish to source nvm on startup: nvm -s use latest
  3. Download and install the DejaVuSans Nerd Font: https://www.nerdfonts.com/font-downloads
  4. Make sure your terminal is using the DejaVuSans Nerd Font. I'm using WezTerm, and these dotfiles automatically configure this.
  5. Install LazyGit, which may require installing golang.
  6. You should also have a gcc/clang and the latest stable rust (probably with rustup) on your system
  7. Also install fzf and ripgrep
  8. If you're editing Java, you need to install jdtls (yay -S jdtls on Arch) separately due to how the nvim-jdtls plugin works - it's not managed using Mason.

Wishlist (plugins to be added and changes to make)

OUTDATED

Cheatsheet

Common operations I forget:

  • Comment out a section of code: visual select, g, c
  • Search in current buffer: space, slash
  • Quit everything: :qa and :wqa
  • Find a file: space, s, f
  • Cancel autocomplete: Ctrl+E
  • Create a new file in neotree: a (read documentation)
  • Rename a file in neotree: r
  • Delete a word (like ctrl+bkspce): ctrl+w
  • Go to beginning of line: ^ (shift 6)
  • Apply fix: space, c, a
  • Yank whole document: ggyG
  • Go to beginning: gg
  • Go to end: shift g