Skip to main content

Architecture and source

Where the config lives

SurfacePath
Sourcehome/dot_config/exact_nvim/
Installed target~/.config/nvim/
Coreexact_lua/exact_core/
Plugin specsexact_lua/exact_plugins/
Local plugin loadersexact_lua/exact_plugins_local/
Local plugin implementationsexact_lua/exact_plugins_local_src/

Chezmoi source paths use prefixes such as exact_; installed paths do not. For example:

home/dot_config/exact_nvim/exact_lua/ -> ~/.config/nvim/lua/
home/dot_config/exact_nvim/exact_after/ -> ~/.config/nvim/after/

Leader keys:

  • mapleader is space.
  • maplocalleader is \.

Neovim itself is version-managed by mise:

Terminal redraw ownership

When Neovim runs inside tmux, core/options.lua disables Neovim's termsync. Tmux 3.7b does not contain the upstream fix that defers cursor writes while a pane is in synchronized-update mode, so leaving termsync enabled exposes cursor-walk artifacts during floating-window redraws such as Neo-tree. Disabling it restores Neovim's cursor-hide fallback; direct terminal sessions keep Neovim's default synchronized redraw behavior.

Quick start

  1. Install the pinned Neovim version:

    mise install neovim@0.12.2
  2. Apply dotfiles:

    chezmoi apply
  3. Launch Neovim:

    nvim
  4. Open the plugin dashboard:

    :PackDashboard

Customization entry points

ChangeStart here
Optionscore/options.lua
Keymapscore/keymaps.lua
Autocmdscore/autocmds.lua
Plugin configplugins/
Local workflowsplugins_local_src/

core/ is foundational editor behavior. plugins/ is plugin configuration grouped by topic/language. plugins_local_src/ contains workflow-specific Lua plugins written in this repo.