Use when editing ANY Neovim configuration including init.lua, plugins, keymaps, LSP settings, or theme configuration. Provides file structure guidance and VHS testing workflow.
Installation
Details
Usage
After installing, this skill will be available to your AI coding assistant.
Verify installation:
npx agent-skills-cli listSkill Instructions
name: neovim description: Use when editing ANY Neovim configuration including init.lua, plugins, keymaps, LSP settings, or theme configuration. Provides file structure guidance and VHS testing workflow.
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
More by jruz
View allUse when editing ANY configuration file in this dotfiles repository. Ensures files are edited in the repo (not symlinks), identifies correct file locations, and tracks the repository structure.
Use when editing ANY zellij configuration including layouts, swap layouts, keybindings, or zjstatus plugin. Provides rules for powerline characters, VHS testing, and verification.
