nvim-minimal/README.md

78 lines
3.1 KiB
Markdown
Raw Permalink Normal View History

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