Home
Softono

Nvimdots.lua

Open source MIT Lua
131
Stars
1
Forks
0
Issues
1
Watchers
2 months
Last Commit

 About Nvimdots.lua

Lazy AF neovim config, well structured in lua.

Platforms

Web Self-hosted

Languages

Lua

Links

Need Help Installing Nvimdots.lua?

We provide expert installation service for this software. Our team will install, configure, and secure Nvimdots.lua on your server. plans start at just $30.

Nvimdots.lua

View on GitHub

Neovim Config

Lua Neovim

Stars Issues Contributors Code size

R.I.P. Kentaro Miura sensei πŸ₯€

🎐 Intro

  • ⚑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!

🧱 Structure

${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

βš™οΈ Installation

Native (git clone)

# 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
nvim

For prerequisites and dependencies, see Wiki: Prerequisite.

Nix (via home-manager)

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.

βš™οΈ Configuration & Usage

πŸͺ¨ Materials

Docs

YouTube channels

Awesomes

Trendy neovim news

πŸŽ‰ Acknowledgment