Personal Neovim config built around Lua, lazy.nvim, LSP, and a tmux-friendly workflow.
- Neovim
>= 0.11 - Git
- A Nerd Font (for icons)
- Optional but recommended:
ripgrep,fd,node,npm,python3
git clone https://github.com/l00sed/neovim-lua-config ~/.config/nvimOpen Neovim once to let lazy.nvim install plugins.
After cloning, install the git hooks:
bash scripts/install-hooks.shThis symlinks everything under scripts/hooks/ into .git/hooks/. Re-run whenever hooks are added or updated.
init.lua: entrypoint and lazy bootstrappinglua/options.lua: core editor optionslua/commands.lua: autocommands and user commandslua/keymaps/: default and plugin keymapslua/plugins.lua: plugin specs (load strategy, deps, config entrypoints)lua/plugins/: plugin-specific setup files
Startup has been tuned to reduce eager plugin loading and defer expensive systems until needed.
Profile commands:
nvim --headless --startuptime /tmp/nvim-startup.log +qa
nvim --headless --clean --startuptime /tmp/nvim-clean.log +qaUseful in-editor commands:
:Lazy profile:Lazy:checkhealth
mason.nvim,mason-lspconfig.nvim, andnvim-lspconfighandle serversnone-ls.nvimis used for selected formatting/diagnostics sources- Most server tuning lives in
lua/plugins/mason.lua
Install Node-based tools with your preferred Node setup (for example nvm + npm i -g ... where required).
Lua files are linted with lua-language-server. Install it via Mason inside Neovim (:MasonInstall lua-language-server) or via your system package manager.
The pre-push git hook runs the linter automatically before every push. It filters out undefined-global vim false positives that are suppressed by .luarc.json inside Neovim but not honoured by the CLI checker.
To run the linter manually:
lua-language-server --check lua/Hook scripts live in scripts/hooks/ and are installed with:
bash scripts/install-hooks.sh- Leader key is
<Space> - Many mappings are tmux-aligned (
vim-tmux-navigator, pane resizing, zoom) - Theme defaults to gruvbox with extra highlight customization in
lua/themes.lua
This config started from community Neovim setups and has since been heavily customized.