A minimal Neovim configuration using the native vim.pack.add() plugin system (no plugin manager).
- Colemak Keymap Layout — Navigation keys remapped for Colemak keyboard users
- Native Plugin Management — Uses Neovim's built-in
vim.pack.add()with version locking - Self-Extracting Installer — Build portable installers via GitHub Actions
- LSP Support — Configured for Lua, C/C++, Python, and Rust
- Modern UI — Gruvbox theme, bufferline, lualine, and which-key
| Plugin | Purpose |
|---|---|
| blink.cmp | Completion with Rust fuzzy matching |
| telescope.nvim | Fuzzy finder |
| oil.nvim | File explorer |
| conform.nvim | Formatting |
| gitsigns.nvim | Git integration |
| trouble.nvim | Diagnostics list |
| nvim-treesitter | Syntax highlighting |
| mason.nvim | LSP server management |
| which-key.nvim | Keymap discovery |
Navigation keys are remapped:
n→ down (j)e→ up (k)i→ right (l)j→ end of word (e)k→ next search (n)l→ insert mode (i)
| Keymap | Action |
|---|---|
- |
Open oil.nvim file explorer |
<leader>ff |
Find files (Telescope) |
<leader>fg |
Live grep (Telescope) |
<leader>cf |
Format buffer |
<leader>xx |
Toggle Trouble diagnostics |
gh |
LSP hover |
gd |
LSP goto definition |
- Neovim 0.10+ (for
vim.pack.add()andvim.lsp.enable()) - Rust (for blink.cmp fuzzy matching compilation)
- tree-sitter-cli (for parser compilation)
Clone this repository to your Neovim config directory:
git clone https://github.com/mistgc/config.nvim ~/.config/nvimRun Neovim to install plugins and treesitter parsers:
nvim --headless -c 'quit'
nvim --headless -c 'lua require("nvim-treesitter").install({ "cpp", "rust", "python" }):wait()' -c 'quit'Download the pre-built installer from Releases and run:
sudo ./packed-nvim.runThis installs:
- Neovim binary to
/opt/nvim - Config to
~/.config/nvim - Pre-compiled plugins and parsers to
~/.local/share/nvim
To uninstall:
sudo ./packed-nvim.run --uninstallOUTPUT_FILE_PATH=./packed-nvim.run ./scripts/pack-nvim.shFormat Lua files with StyLua:
stylua .pre-commit run --all-files├── init.lua # Entry point
├── lua/
│ ├── options.lua # Vim options
│ ├── keymaps.lua # Colemak keymaps
│ ├── plugins.lua # Plugin loading and setup
│ ├── extra_keymaps.lua # Plugin-specific keymaps
│ ├── lsp.lua # LSP configuration
│ ├── autocmd.lua # Autocommands
│ └── utils.lua # Helper functions
├── scripts/
│ └ pack-nvim.sh # Installer builder script
├── nvim-pack-lock.json # Plugin version locks
└── .github/workflows/
│ └── release.yml # GitHub Actions release workflow
MIT