Opinionated Neovim setup focused on a clean UI, fast navigation, and a small set of productive plugins. Written in Lua using lazy.nvim as the plugin manager. Targets macOS, primarily run in Alacritty.
Full docs live in-editor. Run
:help nvim-configfor the complete reference::help nvim-keymaps(every keymap),:help nvim-plugins(every plugin), and:help nvim-notebooks(Molten/Jupyter workflow).
- Neovim (recent version with Lua support)
- Git
- macOS (recommended)
- Alacritty, or any terminal (light colorschemes need a light terminal background)
make(buildstelescope-fzf-native)lazygitbinary (forlazygit.nvim)sioyek(PDF viewer forvimtex)- Formatters used by
conform:stylua,black,isort,clang-format - A Kitty-graphics terminal (Kitty/WezTerm/Ghostty) is only needed for inline Molten notebook images; everything else works in Alacritty
- For notebooks: a
~/.virtualenvs/neovimvenv withpynvim,jupyter_client,jupytext(see:help nvim-notebooks)
- Clone the repo into your Neovim config path:
git clone <repo-url> ~/.config/nvim- Open Neovim and let
lazy.nvimbootstrap and sync:
nvimA short tour — see :help nvim-plugins for the full catalog.
- Plugin management via
lazy.nvim - LSP via
nvim-lspconfig+mason.nvim(clangd,pyrightauto-installed), completion vianvim-cmp+luasnip, formatting viaconform.nvim - Treesitter with sticky context; diagnostics/symbols via
trouble.nvim - Editing:
flashmotions,nvim-surround,Comment.nvim,mini.ai,treesj,nvim-ufofolds,nvim-autopairs - Navigation:
telescope+telescope-fzf-native,neo-tree,oil.nvim,harpoon,grug-farsearch/replace,which-key - UI polish:
lualine,noice,nvim-notify,barbecue+nvim-navic,bufferline,smear-cursor,mini.indentscope - Terminal:
toggleterm - Git:
lazygit.nvim,gitsigns.nvim,diffview.nvim,git-conflict.nvim - Test & debug:
neotest(pytest),nvim-dapwith UI and Python support - Sessions:
persistence.nvim - Notebooks:
molten.nvim(+image.nvim,jupytext.nvim) — see:help nvim-notebooks - R / Quarto:
quarto-nvim+otter.nvimfor.qmdLSP-in-chunks; execution reuses Molten (register R via IRkernel) — see:help nvim-notebooks-quarto - Prose:
zen-mode.nvim,render-markdown.nvim,vimtex - AI:
claudecode.nvimintegration - Persistent, transparent colorschemes: last used scheme is saved and restored on startup
Leader is <Space>, localleader is \. This is a subset — :help nvim-keymaps is the complete reference, <leader>? searches all maps live, and <leader>k opens an in-editor cheatsheet.
| Key | Action |
|---|---|
<leader>ff |
Telescope find files |
<leader>cs |
Pick colorscheme (with live preview) |
<leader>n |
Toggle Neo-tree |
<leader>t |
Toggle vertical terminal (size 80) |
<leader>ac |
Toggle Claude Code |
<leader>z |
Toggle Zen Mode |
<leader>d |
Show diagnostics float |
<leader>e |
Molten evaluate operator |
<leader>r (visual) |
Molten evaluate selection |
<leader>rr |
Molten re-evaluate cell |
<leader>os |
Molten open output window |
<leader>oh |
Molten hide output |
<leader>md |
Molten delete cell |
<localleader>mx |
Molten open output in browser |
<leader>tR |
R REPL terminal |
<leader>op / <leader>oP |
Quarto: start / stop live preview |
<Tab> / <S-Tab> |
Next / previous buffer |
<leader>x |
Close buffer |
gd / K / gr / <leader>rn |
LSP definition / hover / references / rename |
<C-h/j/k/l> |
Move between windows |
init.lualoads the defaultslua/defaults/— options, keymaps, LSP, and lazy bootstrappinglua/plugins/— one file per plugin specdoc/— in-editor:helpdocumentation (:help nvim-config)docs/— long-form prose guides (e.g.docs/molten.md)lazy-lock.json— locked plugin versions.colorscheme— persisted colorscheme name
- Colorscheme is persisted to
.colorscheme; use<leader>csto pick with live preview. telescope-fzf-nativerequiresmake.lazygit.nvimrequires thelazygitbinary.image.nvimis configured for the Kitty terminal backend.
- If a plugin fails to load, run
:Lazy sync. - For
molten.nvim, run:UpdateRemotePluginsafter install. - If the colorscheme looks off, check
.colorschemeor run<leader>csto repick.