/init.lua

My Neovim config

Primary LanguageLua

README

This is my Neovim config.

I use this config on macOS. There's no reason it wouldn't work on Linux, BSD, etc, but most distros have NeoVim 0.7 or earlier so I don't bother.

Requirements

  • Neovim 0.9+
  • LuaJIT

Optional, but some things won't work without them:

  • ripgrep (for Telescope "find string" <leader>fs)
  • tree-sitter and Node.js (for tree-sitter plugins)
  • lazygit (for LazyGit <leader>g)
  • prettier (for NeoFormat)

Custom key maps

(I use <space> as my <leader>.)

Mode Map Plugin(s) Description
normal <ctrl-j> harpoon jump to next file in Harpoon list
normal <ctrl-k> harpoon jump to previous file in Harpoon list
normal <ctrl-t> fterm toggle terminal pane
normal [t, ]t todo-comments jump to previous or next TODO/FIX/etc comment
normal <leader><leader> harpoon open Harpoon window
normal <leader> a harpoon add current file/buffer to Harpoon list
normal <leader> b dap toggle breakpoint
normal <leader> B dap set breakpoint, overwrite if necessary
normal <leader> df dap debug: view stack frame in a centered floating window
normal <leader> dh dap debug: view value of thing under cursor in a hover
normal <leader> dc dap debug: Continue
normal <leader> di dap debug: step Into
normal <leader> do dap debug: step Out
normal <leader> dv dap debug: step oVer
normal <leader> dl dap debug: run last debug config
normal <leader> dp dap debug: view value of thing under cursor in preview window
normal <leader> dr dap debug: open REPL
normal <leader> ds dap debug: view current scopes in a centered floating window
normal <leader> e open file explorer
normal <leader> f. telescope "find " - fuzzy find in this buffer
normal <leader> fa telescope "find again" - open with same search as last time
normal <leader> fb telescope "find buffer"
normal <leader> fc telescope "find command"
normal <leader> fC telescope "find Colorscheme"
normal <leader> fd telescope "find in diagnostics"
normal <leader> ff telescope "find file"
normal <leader> fg telescope "find in git" - honors .gitignore
normal <leader> fhc telescope "find in command history"
normal <leader> fhs telescope "find in search history"
normal <leader> fj telescope "find in jumplist"
normal <leader> fm telescope "find mark"
normal <leader> fs telescope "find string" (requires ripgrep)
normal <leader> ft telescope "find in tree-sitter"
normal <leader> F neoformat run Neoformat on file (requires prettier)
normal <leader> g lazygit open lazygit UI (requires lazygit)
normal <leader> L lazy open lazy UI (plugin manager)
normal <leader> lp dap set breakpoint with log, {var} interpolation
normal <leader> M mason open mason (LSP, linter, formatter, DAP manager)
normal <leader> p paste from system clipboard
normal <leader> P paste (before cursor) from system clipboard
normal <leader> rr rest-nvim execute REST query under cursor
normal <leader> rp rest-nvim preview REST query under cursor
normal <leader> ra rest-nvim execute (again) REST query under cursor
normal <leader> y <motion> copy to system clipboard
normal <leader> z toggle wrap mode
visual J move selection down, with re-indent
visual K move selection up, with re-indent
visual <leader> y copy selection to system clipboard