Opinionated Neovim setup focused on speed, clean UI, and practical LSP/diagnostics. Tested on Neovim 0.10.x.
- Neovim
>= 0.10.1 - Git and a working compiler toolchain (for Treesitter and some plugins)
- macOS or Linux recommended (Windows supported, some commands differ)
- Backup existing config (optional):
mv ~/.config/nvim ~/.config/nvim.bak
- Clone directly into
~/.config/nvim(git):
git clone --depth 1 https://github.com/radiaku/macnvim ~/.config/nvim
- Or using GitHub CLI:
git clone git@github.com:radiaku/macnvim.git ~/.config/nvim
- Or symlink from a local repo you already have:
ln -s /absolute/path/to/this/repo ~/.config/nvim
- Start Neovim; the plugin manager will bootstrap automatically
- Run
:Lazy syncto install plugins, then:TSUpdatefor Treesitter parsers
- Requirements — system tools, language servers, formatters/linters
- Keymaps — leader mappings and workflows
- Git Config — SSH keys and multi-profile Git setup
- Core:
lua/radia/core/(settings, utility, lazy bootstrap)- Settings:
lua/radia/core/settings.lua - Defaults:
lua/radia/core/default_settings.lua(sets_G.themesnameand core globals) - Lazy config:
lua/radia/lazy.lua
- Settings:
- Keymaps:
lua/radia/keymaps/(default_keymaps.lua,custom_keymaps.lua,custom_function_keymaps.lua) - Plugins:
lua/radia/plugins/grouped by purpose:lua/radia/plugins/themes/— colorschemes and theme setup (priority-loaded)lua/radia/plugins/ui/— visual/UI plugins (statusline, bufferline, folds, diagnostics UI, window picker, file explorer, status/winbar, etc.)lua/radia/plugins/editing/— editing helpers (comments, text objects, marks, move lines, wrapping)lua/radia/plugins/search/— search/navigation (Telescope, Hop, todo-comments, Harpoon, NeoClip)lua/radia/plugins/tools/— general tools (terminal, DB UI)lua/radia/plugins/notes/— note-taking (Obsidian, markdown rendering)lua/radia/plugins/perf/— performance tuning (Bigfile, LargeFile)lua/radia/plugins/lsp/— language tooling: LSP (mason, lspconfig, none-ls), completion/snippets (nvim-cmp,LuaSnip), formatting (conform.nvim), linting (nvim-lint), parsing (treesitter), language-specific tools (Go, Godot, Flutter)lua/radia/plugins/util/— utilities (sessions and helpers)lua/radia/plugins/disabled/— disabled or experimental specs kept for reference
- Theme orchestration:
lua/radia/themes.lua(selects_G.themesnameand applies colorscheme with fallback) - Diagnostics:
lua/radia/plugins/ui/tiny-line-diagnostic.lua,lua/radia/last.lua
- File search:
:Telescope find_files,:Telescope live_grep - Buffers:
:Telescope buffersor bufferline navigation - File tree:
:Neotree toggle - Terminals:
:ToggleTerm(horizontal/vertical/floating terminals) - Undo history:
:UndotreeToggle - Git:
:Neogit,:G(fugitive),:DiffviewOpen
- Server management:
:Mason(install/update language servers) - LSP config: handled in
plugins/lsp/lspconfig.lua - Inline diagnostics:
tiny-inline-diagnosticshows messages at end-of-line- Built-in
virtual_textandvirtual_linesare disabled globally - Hover float for details: use your hover/diagnostic keymap (see
default_keymaps.lua)
- Built-in
- Telescope: fuzzy finding for files, grep, buffers, help;
:Telescopethen pick a picker - Neo-tree: fast file explorer;
:Neotree toggle - Treesitter: improved syntax parsing; update with
:TSUpdate - Lualine: statusline integration; no commands needed
- Bufferline: buffer tabs; navigate with your buffer keymaps
- Which-Key: discover keymaps; press
<leader>to see hints or run:WhichKey - Comment: toggle comments; use
gcc(line) /gc(visual) - LuaSnip: snippets; expand via completion or snippet keymaps
- nvim-cmp: autocompletion; integrates with LSP and snippets
- Trouble: diagnostics list;
:Troubleto open, jump to issues - Toggleterm: integrated terminal;
:ToggleTermor mapped keys to open - Undotree: visualize undo history;
:UndotreeToggle - Harpoon: mark files and jump; quick menu via Lua
require('harpoon.ui').toggle_quick_menu() - Diffview: visual git diff;
:DiffviewOpen/:DiffviewClose - Fugitive: git porcelain;
:Gand related subcommands - Neogit: interactive Git UI;
:Neogit - Navic: code context breadcrumbs; shows in statusline/winbar
- Indent guides:
indent-blanklinedraws scope guides automatically - UFO Folds: smart folding; use normal fold keys (
za,zc,zo) - Window Picker: pick window for split/move actions; pops up on demand
- Colorizer: highlight color codes (hex/rgb) in files
- HLChunk: highlight current code block/chunk for readability
- Obsidian: note-taking workflows;
:ObsidianOpenand related commands - Go tools: Go-specific helpers (formatter, test runner, etc.)
- Tiny Inline Diagnostic: compact inline messages without overlaying code
Disabled plugin configs live under plugins/disabled/. Enable them by moving their spec files out of disabled/ into the appropriate group.
- See
lua/radia/keymaps/*.luafor all core, plugin, and function mappings - Many plugins provide mappings that show via Which-Key
- If diagnostics feel noisy, open the float on demand and rely on inline summaries
- Use Mason to ensure language servers are installed and up-to-date
- For performance on huge files, Bigfile/LargeFile plugins adjust features automatically
- Diagnostics re-enabled unexpectedly:
:lua vim.diagnostic.config({ virtual_text=false, virtual_lines=false }) - Treesitter errors: update parsers with
:TSUpdateor reinstall the plugin via:Lazy - Completion issues: check
nvim-cmp.luaand ensure LSP servers are running (:LspInfo)
- If using FZF on Windows, ensure the binary is on
PATH - Telescope works cross-platform; prefer Telescope over legacy FZF when possible
This README summarizes the project layout and common plugin usage. For deeper customization, explore files under lua/radia/.