A hand-rolled Neovim config — IDE features, fast startup, VSCode-like feel — with Claude built in. Organized craftzdog-style: a thin lazy.nvim loader and one plugin per file.
| IDE View | Fuzzy Finder |
|---|---|
![]() |
![]() |
| LSP Hover | Terminal |
|---|---|
![]() |
![]() |
- Claude in the editor —
coder/claudecode.nvim: run the Claude Code CLI in a split, send selections/buffers, apply diffs. No API key. - LSP — mason + nvim-lspconfig on the modern
vim.lsp.config/vim.lsp.enableAPI (Neovim 0.11+). 8 servers auto-installed. - Completion — nvim-cmp + LuaSnip + lspkind.
- Fuzzy finding — Telescope (fzf-native, ui-select, projects, neoclip).
- Syntax — Treesitter (highlight + indent).
- UI — NyanVim dashboard, lualine, bufferline, nvim-tree, indent guides, illuminate.
- Git — gitsigns, diffview, lazygit.
- Editor — toggleterm, autopairs, Comment.nvim, todo-comments, project.nvim.
- Keymap discovery — which-key (v3).
- Themes — tokyonight-moon (default) + solarized-osaka (
:colorscheme solarized-osaka). - Discipline — habit-trainer that nags on
hjkl/arrow spamming.
| Dependency | Version | Notes |
|---|---|---|
| Neovim | >= 0.11 | required — Telescope and vim.lsp.enable need it. Install |
| Git | >= 2.19 | |
| Node.js | any LTS | for LSP servers |
| ripgrep | any | rg — Telescope grep |
| fd | any | fd — Telescope find |
| C compiler | any | gcc/clang — Treesitter |
| tree-sitter CLI | any | tree-sitter — compiles Treesitter parsers (:TSUpdate). cargo install tree-sitter-cli / npm i -g tree-sitter-cli / release binary |
| Nerd Font | any | nerdfonts.com |
| Claude Code CLI | any | optional — for in-editor Claude (claude on PATH) |
Note: Distro packages are often too old (e.g. Ubuntu ships 0.9.x). Use the official AppImage or a recent build to get 0.11+.
curl -fsSL https://raw.githubusercontent.com/kyuna0312/NyanVim/main/install.sh | bashOr manually:
# Back up existing config
mv ~/.config/nvim ~/.config/nvim.bak
# Clone
git clone https://github.com/kyuna0312/NyanVim.git ~/.config/nvim
# Start Neovim — plugins install automatically on first launch
nvimAfter install, run :checkhealth nyanvim to verify your system is set up correctly.
Leader key: <Space>
| Key | Action |
|---|---|
<Space>ff |
Find files |
<Space>fg |
Live grep |
<Space>fb |
Open buffers |
<Space>fh |
Help tags |
<C-b> |
Toggle file explorer (nvim-tree) |
<Space>e |
Toggle file explorer |
<S-h> / <S-l> |
Prev / Next buffer |
<C-h/j/k/l> |
Navigate windows |
| Key | Action |
|---|---|
gd |
Go to definition |
gD |
Go to declaration |
gr |
References |
gi |
Implementation |
K |
Hover docs |
<Space>rn |
Rename symbol |
<Space>ca |
Code actions |
<Space>f |
Format buffer |
| Key | Action |
|---|---|
<Space>ac |
Toggle Claude split |
<Space>af |
Focus Claude |
<Space>as |
Send visual selection (visual mode) |
<Space>ab |
Add current buffer to context |
<Space>at |
Add file from tree |
<Space>aa / <Space>ad |
Accept / Deny diff |
<Space>ar / <Space>aC |
Resume / Continue session |
<Space>am |
Select model |
| Key | Action |
|---|---|
<Space>t |
Toggle terminal |
<C-\> |
Toggle floating terminal |
:Mason |
LSP/tool installer |
:LazyGit |
Git UI |
:Dashboard |
NyanVim dashboard |
Press <Space> and wait to browse all groups via which-key.
init.lua -- leader, options, then loads config + discipline
lua/
config/
lazy.lua -- bootstrap + { import = "plugins" }
options.lua -- editor options
keymaps.lua -- direct keymaps
autocmds.lua -- autocommands
which-key.lua -- <leader> group definitions
plugins/ -- one concern per file, all auto-imported
colorscheme · ui · dashboard · telescope · lsp
treesitter · editor · which-key · claudecode
nyanvim/
init.lua · health.lua · discipline.lua
Add a file under lua/plugins/ returning a lazy.nvim spec — it's picked up
automatically by { import = "plugins" }:
-- lua/plugins/my-plugin.lua
return {
{ "owner/repo", opts = {} },
}cd ~/.config/nvim
git pull
nvim --headless "+Lazy! sync" +qaLSP servers auto-installed via mason: Lua · Python · TypeScript/JavaScript · Rust · JSON · HTML · CSS. Treesitter additionally parses Go, Bash, Markdown, Vim, and more.
:checkhealth nyanvim
Startup time is benchmarked on every release using nvim --startuptime.
Results live in docs/perf/ — one file per release, with mean/median/min/max and a comparison against the previous release.
Run locally:
./bench.sh --runs 10Results are saved to docs/perf/YYYY-MM-DD-VERSION.md.





