Go to file
yaroslav k 884bec3f32 commit
2026-07-28 03:37:35 +03:00
colors Initial commit: nvim-minimal 2026-07-28 03:23:41 +03:00
lua Initial commit: nvim-minimal 2026-07-28 03:23:41 +03:00
.gitignore Initial commit: nvim-minimal 2026-07-28 03:23:41 +03:00
init.lua Initial commit: nvim-minimal 2026-07-28 03:23:41 +03:00
lazy-lock.json commit 2026-07-28 03:37:35 +03:00
LICENSE Initial commit: nvim-minimal 2026-07-28 03:23:41 +03:00
README.md Initial commit: nvim-minimal 2026-07-28 03:23:41 +03:00
stylua.toml Initial commit: nvim-minimal 2026-07-28 03:23:41 +03:00

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-devel on 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 :TSInstall to 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.surroundgz·gZ, gc, sa/sd/sr
  • based colorscheme — vendored at colors/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 path source; 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.