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