Lua-only. Modular: core/ for vim primitives, plugins/ for features, lsp/ per-server.
Tree
nvim/
├── init.lua
├── lua/
│ ├── core/
│ │ ├── options.lua
│ │ ├── keymaps.lua
│ │ └── plugins.lua
│ └── plugins/
│ ├── lsp.lua
│ ├── telescope.lua
│ └── ...
└── lsp/
├── lua_ls.lua
└── pyright.lua
Stack
- LSP:
nvim-lspconfig+nvim-cmp - Find:
telescope.nvim - UI:
lualine.nvim(theme-synced) - Format:
formatter.lua
Adding a language
- Create
nvim/lsp/<server>.lua requireit ininit.lua- Install via
:Masonor system pkg
Gotcha
Lua keymap callbacks must be wrapped, not invoked. function() require('x').y() end, not require('x').y().
Essential Keymaps
The editor is tuned for rapid navigation and minimal mode-switching:
leader + pv: Open File Explorer (Ex).leader + pt: Open integrated terminal in a bottom split.jj: Exit Insert mode (The fastest exit).Ctrl + h/l: Navigate between splits.v + J/K: Move selected blocks of code vertically.
System Clipboard Integration
I bypass the internal register for global utility:
vim.keymap.set({'n', 'v'}, '<leader>y', '"+y') -- Yank to System
vim.keymap.set({'n', 'v'}, '<leader>p', '"+p') -- Paste from System