-
Notifications
You must be signed in to change notification settings - Fork 0
Neovim
Core ships a complete lazy.nvim-based
Neovim configuration under nvim/, namespaced under lua/gerrrt/. It is
vendored into every OS repo unchanged — the only OS-specific bit (the clipboard
backend) is resolved at runtime through Core's clip shims, not branched in Lua.
The load chain is deliberately thin:
nvim/init.lua → require("gerrrt")
lua/gerrrt/init.lua → require("gerrrt.config.lazy")
lua/gerrrt/config/lazy.lua → bootstraps lazy.nvim, then loads config + plugins
config/lazy.lua clones lazy.nvim (pinned to its stable branch) on first run,
prepends it to the runtime path, loads the config modules in order, then calls
lazy.setup importing every spec under gerrrt.plugins.
The config modules, loaded before plugins:
| Module | Responsibility |
|---|---|
config/globals.lua |
leader keys, vim.g.* flags (incl. dotfiles_offline) |
config/options.lua |
vim.opt settings |
config/keymaps.lua |
global, non-plugin keymaps |
config/autocmds.lua |
autocommands |
config/clipboard.lua |
wires the clip / clip-paste provider |
config/providers.lua |
python/node provider config |
Two deliberate choices, both visible in config/lazy.lua:
-
Disabled built-in runtime plugins (
netrwPlugin,gzip,tarPlugin,zipPlugin,tohtml,tutor) so they're never sourced at startup — nvim-tree owns file exploration. -
DOTFILES_OFFLINE=1(set viaglobals.lua→vim.g.dotfiles_offline) disables lazy.nvim's background update checker, so an engagement box never phones home with unattendedgit fetchof plugin repos.
The plugin set lives one-file-per-plugin under lua/gerrrt/plugins/. Highlights:
-
UI/theme —
tokyonight(the palette shared with tmux + starship),lualine,bufferline,which-key,mini.nvim. -
Navigation —
nvim-tree,harpoon(<leader>1-4),flash,fzf-lua,vim-tmux-navigator(seamlessC-h/j/k/lbetween nvim splits and tmux panes). -
Git —
gitsigns,vim-fugitive. -
LSP/completion —
nvim-lspconfig,blink-cmp,conform(format),nvim-lint,lazydev,trouble. -
Treesitter —
nvim-treesitter(pinned tomain; needs tree-sitter-cli ≥ 0.26.1 — see PORTING-MATRIX). -
Languages —
rustaceanvim, plus DAP (nvim-dap-ui). -
Editing —
nvim-spectre,ccc(colors),zen-mode.
Exact versions are pinned in nvim/lazy-lock.json; the weekly freshness gate
flags when they drift behind upstream (see Maintenance & Updates).
Server configs live under lua/gerrrt/servers/: lua_ls, ts_ls, ruff +
ty (Python), gopls, clangd, rust (via rustaceanvim), bashls,
yamlls, jsonls, dockerls, tailwindcss, emmet_ls,
solidity_ls_nomicfoundation.
Leader-based, discoverable via which-key. A sample from config/keymaps.lua:
| Key | Action |
|---|---|
j / k
|
wrap-aware down/up |
<Esc> |
clear search highlight |
n / N
|
next/prev search result, centered |
<C-d>/<C-u>
|
half-page scroll, centered |
<leader>p |
paste without yanking (visual) |
<leader>sv/sh |
split vertically / horizontally |
<leader>rc |
edit init.lua
|
<leader>1-4 |
harpoon jump (owned by harpoon) |
]b / [b
|
next / previous buffer (bufferline) |
Window movement (C-h/j/k/l) is intentionally owned by vim-tmux-navigator,
so it crosses seamlessly into tmux panes.
:checkhealth gerrrt (lua/gerrrt/health.lua) gives an actionable clipboard
report: it runs the same clip / clip-paste ladder Neovim's provider uses and
tells you exactly which backend is missing and how to install it, instead of the
opaque "clipboard provider" error. It's the Neovim counterpart to the shell's
core-doctor.
-
tmux — the
vim-tmux-navigatorintegration and shared tokyonight palette. - Maintenance & Updates — how the lazy-lock pins are kept fresh.
dotfiles-core — the Core layer of
a nine-repo dotfiles system · authored once, vendored everywhere via git subtree.
Home · Architecture · Zsh · Tools · Neovim · tmux · FAQ
Source for these pages lives in
wiki/ — edit there and
sync. · core-help in any shell for the live cheat sheet.
Concepts
Reference
Operating it
Project
Repo links