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.
78 lines
3.1 KiB
Markdown
78 lines
3.1 KiB
Markdown
# 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
|
|
|
|
```sh
|
|
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`
|
|
- **`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. |