Native Neovim 0.12 config using vim.pack, built-in LSP configuration, Conform
formatting, Blink completion, and a small set of local UI/window helpers.
init.lualoads the config entrypoints.lua/configs/pack.luadeclares plugins forvim.pack.lua/configs/ui.luaconfigures UI plugins and shared behavior.lua/configs/lspconfig.luadefines native LSP servers.lua/configs/conform.luakeeps formatting repo-aware.lua/configs/buffers.lua,tabline.lua,term.lua, andhighlights.luahold local window, tabline, terminal, and theme behavior.lua/notes/init.luais the local notes helper.
- Neovim 0.12.x
- Git
- ImageMagick for image rendering
Plugin revisions are tracked in nvim-pack-lock.json.
Buffer-local mappings for .md, .mdx, .qmd (Quarto), and .rmd (R
Markdown) files have been added to streamline document editing:
-
Bold (
**):Cmd+B(GUI) /<leader>mb(Terminal) -
Italic (
*):Cmd+I(GUI) /<leader>mi(Terminal) -
Smart Checkbox Cycling:
Cmd+C(GUI) /<leader>mc(Terminal)- Cycles line through:
Plain Line$\rightarrow$ Unchecked [ ]$\rightarrow$ Checked [x]$\rightarrow$ Plain Line(retains list indentation and formats).
- Cycles line through:
-
Insert Link:
Cmd+K(GUI) /<leader>ml(Terminal)- Wraps visual selection in
[selected_text]()and places cursor inside the parens, or inserts[](url)at cursor in normal mode.
- Wraps visual selection in
-
Inline Code (
`):Cmd+E(GUI) /<leader>me(Terminal) -
Strikethrough (
~~):<leader>ms(Terminal)
These configuration scripts are placed inside the after/ftplugin/ directory.
In Vim/Neovim, this layout serves three major purposes:
- On-Demand (Lazy) Loading: Keymaps and logic are only loaded when a markdown-compatible buffer is opened, keeping startup fast.
- Order of Execution: Files in
after/are executed at the very end of Neovim's startup pipeline. This prevents standard system-wide filetype plugins or other package/plugin managers from overwriting your custom buffer-local keymaps. - Encapsulation: Keeps filetype-specific helper functions and maps fully
decoupled from your main global
mappings.luasetup.