neovim
SKILL.md
Neovim Skill
Configuration Locations
- Main config:
home/.config/nvim/init.lua - Plugins:
home/.config/nvim/lua/plugins.lua - Config modules:
home/.config/nvim/lua/config/keymaps.lua- Key mappingslsp.lua- LSP configurationcompletion.lua- Completion settingswhich-key.lua- Which-key mappingstreesitter.lua- Treesitter configtelescope.lua- Telescope configlualine.lua- Statusline configoil.lua- Oil file manager config
- Always edit files in
~/dev/dotfiles/, not symlinked files in~/.config/
File Structure
home/.config/nvim/
├── init.lua # Base config, options, rustaceanvim settings
├── lua/
│ ├── plugins.lua # Lazy.nvim plugin definitions with opts
│ └── config/
│ ├── init.lua # Loads all config modules
│ ├── keymaps.lua
│ ├── lsp.lua
│ └── ...
├── after/ # Filetype-specific settings
├── selene.toml # Lua linter config
└── stylua.toml # Lua formatter config
Plugin Configuration Pattern
Plugins use lazy.nvim with inline opts or config functions:
{
"plugin/name",
opts = {
setting = value,
},
}
For plugins requiring setup logic:
{
"plugin/name",
config = function(_, opts)
require("plugin").setup(opts)
end,
}
VHS Testing
CRITICAL: NEVER run nvim commands that affect the user's active session. VHS creates its own isolated terminal.
CRITICAL: ALWAYS use the tape in this skill folder. NEVER create ad-hoc tape files with different output names.
Use VHS to verify visual changes:
- Run the tape:
vhs .claude/skills/neovim/neovim.tape - Output screenshot goes to
tmp/neovim.png - Read the screenshot to verify before telling user the fix is complete
The tape opens neovim in a clean environment, waits for it to load, and captures a screenshot.
Color Scheme
Uses Catppuccin Mocha theme. Set in init.lua:
vim.cmd.colorscheme("catppuccin-mocha")
Key Mappings
Leader key is Space. Mappings defined in:
lua/config/keymaps.lua- General keymapslua/config/which-key.lua- Which-key groups and mappingslua/plugins.lua- Plugin-specific mappings in plugin specs
LSP Setup
LSP configured via:
- Mason for LSP server installation
- mason-lspconfig for automatic setup
- Individual server configs in
lua/config/lsp.lua - Rustaceanvim configured separately in
init.lua(must load before plugins)
Verification Checklist
Before declaring a config change complete:
- Confirm you edited files in
~/dev/dotfiles/home/.config/nvim/ - Run VHS tape to capture screenshot
- Verify neovim starts without errors
- Test the specific feature you changed
- Check no Lua errors in
:messages
Common Issues
- Plugin errors: Check lazy.nvim lockfile at
~/.local/share/nvim/lazy-lock.json - LSP not starting: Check
:LspInfoand:Mason - Treesitter errors: Run
:TSUpdate - Config reload: Use
<leader>Ror:source %on init.lua
Weekly Installs
3
Repository
jruz/dotfilesFirst Seen
Feb 18, 2026
Security Audits
Installed on
opencode3
gemini-cli3
claude-code3
github-copilot3
amp3
codex3