- ⚡BLAZINGLY FAST startup time in ~40ms. (Tested on M3 Pro MacBooks)
- Well structured in
Lua. - Easy to customize.
- Use lazy.nvim as plugin manager.
- Aligned icons across every plugin!
${HOME}/.config/nvim
├── Applications/ macOS application shortcuts
├── after/
│ ├── ftplugin/ filetype-based rules (c, cpp, dockerfile, go, json,
│ │ jsonc, make, markdown, nix, python, rust)
│ ├── plugin/
│ │ └── mise.lua mise integration (after plugin)
│ └── queries/ custom treesitter queries
│ ├── bash/injections.scm bash injection queries
│ └── toml/injections.scm toml injection queries
├── nixos/ NixOS/home-manager integration
├── scripts/
│ └── update_lockfile.sh script for updating lazy-lock.json
├── snips/
│ ├── package.json how LuaSnip reads snippets, vscode-style
│ └── snippets/ snippet definitions (c, cpp, global, go, lua,
│ markdown, python/, rust)
├── spell/ custom spelling correction
├── flake.nix Nix flake for reproducible environment
├── flake.lock Nix flake lock file
├── lazy-lock.json lazy.nvim plugin lock file
├── mise.toml mise task runner config
├── stylua.toml stylua settings
├── tombi.toml TOML LSP settings
├── init.lua
└── lua/
├── core/
│ ├── event.lua event-based autocommands
│ ├── global.lua global/platform variables
│ ├── init.lua bootstrap sequence
│ ├── options.lua neovim options
│ ├── pack.lua lazy.nvim bootstrap & plugin loader
│ └── settings.lua user-customizable settings
├── hm-generated.lua home-manager generated config (NixOS)
├── keymap/ keymaps organized by category
│ ├── init.lua package keymaps + requires all categories
│ ├── viewport.lua buffer, window, tab keymaps
│ ├── edit.lua editing, motion, text objects, session
│ ├── lsp.lua LSP, trouble, formatter keymaps
│ ├── git.lua gitsigns, diffview, git picker
│ ├── fuzzy.lua snacks.nvim picker keymaps
│ ├── debug.lua DAP keymaps
│ ├── terminal.lua terminal, TUI tools (lazygit, btop, yazi)
│ ├── tool.lua overseer, sniprun, sidebar, markview
│ └── helpers.lua keymap helper functions
└── modules/
├── plugins/ lazy.nvim plugin specs
│ ├── completion.lua LSP, completion, formatting, linting
│ ├── editor.lua editing enhancements
│ ├── lang.lua language-specific plugins
│ ├── tool.lua tools (DAP, search, file explorer, etc.)
│ └── ui.lua UI & appearance
├── configs/ plugin configurations
│ ├── completion/ LSP, blink.cmp, conform, nvim-lint configs
│ │ ├── formatters/ per-formatter configurations
│ │ └── servers/ per-LSP server configurations
│ ├── editor/ editor plugin configs
│ ├── lang/ language plugin configs
│ ├── tool/ tool configs
│ │ └── dap/ DAP settings & per-language debug clients
│ └── ui/ UI plugin configs
└── utils/ utility functions
├── init.lua general utilities
├── icons.lua icon definitions
├── keymap.lua keymap utilities (amend/replace)
└── dap.lua DAP utilities# Back up existing config (if any)
mv ~/.config/nvim ~/.config/nvim.backup
# Clone the repository
git clone https://github.com/charliie-dev/nvimdots.lua.git ~/.config/nvim
# Launch Neovim — plugins will be installed automatically on first run
nvimFor prerequisites and dependencies, see Wiki: Prerequisite.
This config ships with a flake.nix for reproducible setup. Add it to your home-manager configuration:
{
inputs.nvimdots.url = "github:charliie-dev/nvimdots.lua";
# In your home-manager module:
programs.neovim = {
enable = true;
package = inputs.nvimdots.packages.${system}.default;
};
}See nixos/ and flake.nix for details.
- Wiki: Prerequisite — dependencies and setup
- Wiki: Usage — customization guide
- Wiki: Installed Plugins — full plugin list
- Wiki: FAQ — frequently asked questions
- Lua docs
- neovim/options
- neovim/lua-api
- neovim Wiki
- Learn vim/neovim
- alpha2phi/Neovim for Beginners, Neovim 101
- Vim Tips Wiki
- Vim Cheat Sheet
- Learn Vimscript the Hard Way
- Learn Vim the Simple Way, a web game to learn vim motions
- vim-adventures, another web game to learn vim.
- BooleanCube/NeovimKeys, offline vim motion game
- ThePrimeagen/vim-be-good, a plugin by ThePrimeagen
- ThePrimeagen/2-simple-steps, another vimtutor by ThePrimeagen
- vimcdoc, a vim doc in Chinese, could be a plugin, a program or a webpage
- ThePrimeagen/Vim As Your Editor, BLAZINGLY FAST alpha vimfluencer
- TJ DeVries, neovim core team
- neovimcraft
- LibHunt/neovim
- rockerBOO/awesome-neovim
- How I Vim
- nvim.sh, neovim plugin search from the terminal
- Neoland, a collection of plugins, themes and other resources for Neovim.
