Personal Neovim config (~130 plugins). See init.lua for full plugin list.
- Indentation:
expandtab=true,shiftwidth=2,tabstop=4
- Package manager:
lazy.nvim(installed manually to~/.local/share/nvim/lazy/) - Configs in
lua/configs/*.lua - Lockfile:
lazy-lock.json(should not be edited manually, generated bylazy.nvim)
init.lua- Entry point, plugin listlua/configs/- Plugin configs (options, keymaps, autocmds, per-plugin setups)lua/utils.lua- Helpers
Most plugins use a pattern where use 'plugin-name' in init.lua automatically loads configs.plugin-name:
-- init.lua
use 'telescope'
-- lua/configs/telescope.lua
return { 'nvim-telescope/telescope.nvim', ... }The use() function in lua/utils.lua, which does require('configs.' .. module).
If vim.g.minimal_config is set only the most important plugins will get loaded for a faster startup time.
When adding a new config, please follow the pattern of plugin configs in ./lua/configs/.
If a plugin only has one dependency, just use a string instaed of a table with one string:
return {
dependencies = 'tpope/vim-repeat',
-- ...
}I try to lazy load as many plugins as possible. See nvim -c 'help lazy.nvim.txt' for more info on lazy.nvim and lazy loading.
- Custom textobjects in
lua/configs/treesitter/textobjects.lua - List of treesitter parsers in
lua/configs/treesitter/parsers.lua
Please auto-format any modified lua file with EmmyLuaCodeStyle.
- For Neovim help docs, use Neovim's
:helpcommand README.md- Installation.luarc.json- Lua LSP config