Awesome
My nvim-lua setup
What's in this repo?
My personal neovim lua config (requires neovim >= 0.8
)
- Minimum changes to default key mapping
- A good selection of carefully hand-picked plugins
- Lazy load plugins where possible
- Which-key to rule them all
- Misc utilities and goodies
Plugins & Packages
-
lazy.nvim: lua plugin manager to auto-install and update our plugins
-
mason.nvim: automatic installation of LSP servers using the
:Mason
command
Basics
-
smartyank.nvim: only pollute the clipboard when you really mean it!
-
mini.surround: adds the missing operators (
ds
,cs
,ys
) for dealing with pairs of "surroundings" (quotes, tags, etc)
Git
-
vim-fugitive: git porcelain and plumbing in one by tpope, the Swiss army knife of git
-
gitsigns: git gutter indicators and hunk management
-
diffview.nvim: powerful git diff/merge tool (
<leader>gd|yd
to invoke for project|dotfiles)
Coding, completion & LSP
-
Comment.nvim: use
gc
andgcc
to comment visual-blocks and lines -
mini.indentscope: add indentation markers based on
tabstop | shiftwidth
-
nvim-cmp: autocompletion framework
-
treesitter: text parsing library, provides better syntax highlighting and text-objects for different coding languages (e.g.
yaf
yank-a-function), see treesitter.lua for defined text objects -
lspconfig: configuration quickstart for nvim's built in LSP
-
conform.nvim: formatter plugin where LSP formatting isn't what you need, format
js|json|html
withprettier
or lua withstylua
using thegQ
mapping. -
nvim-dap: set breakpoints and debug applications using Debug Adapter Protocol (DAP)
-
fidget.nvim: Eye candy LSP progress indicator above the status line (top right)
Fuzzy search & file exploration
-
fzf-lua: the original, tried and tested fuzzy finder, lua plugin that does pretty much everything, written by yours truly
-
telescope.nvim: fuzzy search framework for searching project files, buffers, ripgrep and much more
-
nvim-tree: file-explorer tree
Misc
-
which-key: a must plugin in every setup, when leader key (and some built-ins) sequence is pressed and times out which-key will generate a help window with your keybinds and also let you continue the sequence at your own pace
-
toggleterm.nvim: better term and REPLs (use
gx
andgxx
to send REPLs to an interpreter) -
previm: live preview markdown files in the browser with
<space>r
-
render-markdown.nvim: magical plugin rendering markdown files inside neovim
Appearence
-
heirline.nvim: DIY status line plugin, semi-minimalistic setup.
-
nvim-colorizer.lua: color code highlighter, use
ColorizerAttachToBuffer
to provide a live preview of color codes in your buffer (e.g.#d4bfff
)