A small, fast, portable Neovim config built on bare lazy.nvim (no LazyVim, no LSPs, no Mason). Vendored `based` colorscheme (GPLv3, self-authored, derived from vim-vividchalk) so the config loads on any machine with just nvim + git — the listed treesitter parsers ship prebuilt, so no compiler is needed for the configured languages. Plugins: snacks.nvim (picker/explorer/buffers), nvim-treesitter (pinned to master for the declarative ensure_installed/highlight/indent API), blink.cmp (buffer+path completion, prebuilt binary), lualine, gitsigns, mini.align/ comment/surround. Personal keymaps ported: jj/jk/kj/чя escape, ж -> :, Russian langmap, arrow disables, bracket-return expansions, gc/sa-sd-sr/gz-gZ. |
||
|---|---|---|
| colors | ||
| lua | ||
| .gitignore | ||
| init.lua | ||
| lazy-lock.json | ||
| LICENSE | ||
| README.md | ||
| stylua.toml | ||
nvim-minimal
A small, fast, portable Neovim config. No LSPs, no heavy plugins — just the editing essentials and a familiar UI. Clone it on any machine with Neovim + git and you're editing in seconds.
Requirements
- Neovim ≥ 0.10
- git (lazy.nvim bootstraps itself and clones plugins on first launch)
- a Nerd Font installed in your terminal for icons in snacks/lualine
(optional; config works without it, icons just render as
?) - a C compiler + make (
base-develon Arch) — optional. The nvim-treesitter languages listed below ship prebuilt parsers in the plugin repo, so the configured languages work without any compilation. You only need a compiler if you later add parsers that aren't prebuilt (or force:TSInstallto recompile).
On first launch nvim pauses to clone plugins (network, one-time); no compilation is needed for the bundled languages.
Install
git clone <this-repo> ~/.config/nvim
nvim # lazy.nvim bootstraps and installs plugins; parsers are prebuilt
lazy-lock.json is committed, so every clone installs identical plugin
versions. To bump, run :Lazy sync and commit the updated lockfile.
What's in it
- lazy.nvim — plugin manager (bootstrap, no LazyVim)
- snacks.nvim — file picker, explorer, buffer picker
- nvim-treesitter — highlighting, indentation, treesitter folds
- blink.cmp — completion (buffer words + file paths; Super-Tab keymap)
- lualine — statusline
- gitsigns — git gutter signs
- mini.align / mini.comment / mini.surround —
gz·gZ,gc,sa/sd/sr basedcolorscheme — vendored atcolors/based.vim(self-authored, GPLv3, derived from vim-vividchalk). Transparent against a see-through terminal by default.
Key bindings
| Key | Action |
|---|---|
gb |
buffer picker |
<leader>F |
find files (hidden, ignoring node_modules/.git) |
<leader>t |
file explorer |
jj / jk / kj / чя |
escape from insert mode |
ж |
enter command-line (:) — Russian-layout fix |
gc |
toggle comment (mini.comment) |
sa / sd / sr |
add / delete / replace surround (mini.surround) |
gz / gZ |
align / align-with-preview (mini.align) |
gf |
go to file under cursor (built-in; path + suffixesadd) |
<Tab> / <S-Tab> |
next / prev completion item (blink) |
<Cr> |
accept completion |
<C-space> |
show completion + docs |
<C-b> / <C-f> |
scroll docs up / down |
Arrow keys, <Esc>, <C-c>, and middle-click are deliberately disabled to
force home-row habits.
Notes / limitations
- No LSP.
gd/gr/hover/etc. rely on built-ins; there is no language server. That's the point. - blink.cmp prebuilt binary ships for linux/mac x86_64 & arm64 release tags.
On other architectures you'd need a Rust toolchain to build
libblink(out of scope here). - Filename completion is provided by blink's
pathsource; native<C-x><C-f>is not configured (blink's<C-f>scrolls docs).
License
GPLv3. colors/based.vim keeps its original GPLv3 header; it is derived from
vim-vividchalk by Tim Pope (permissively licensed), so GPLv3 is compatible.