| name | nvim-help |
| description | Search and read Neovim's built-in :help documentation to look up API signatures, parameter types, option values, and event specifications from the user's installed runtime. Use when the user wants to consult reference material — function docs, help tags, option descriptions — not when they want to write, create, or debug something. Pairs with Context7 (neovim/neovim) for code examples; this skill provides exact local signatures and docs.
|
Neovim Help
Neovim's help docs are plain text in $VIMRUNTIME/doc/. Resolve the path once per session:
VIMRUNTIME=$(nvim -l /dev/stdin <<< 'io.write(vim.env.VIMRUNTIME)' 2>/dev/null)
Tags are *like-this*, cross-references are |like-this|, code blocks are between > and < lines.
Search tags by keyword
grep -i '<keyword>' "$VIMRUNTIME/doc/tags"
Output: <tag>\t<help-file>\t<search-pattern>
When presenting tag search results, show the full path to each file.
Read a help section for an exact tag
Escape dots (\.) and parens (\(\)) for sed.
sed -n '/\*<exact-tag>\*/,/^====/p' "$VIMRUNTIME/doc/<help-file>"
Full-text search across all help files
grep -rn '<pattern>' "$VIMRUNTIME/doc/"*.txt
Table of contents for a help file
awk '/^===/{getline; print " L" NR ": " $0}' "$VIMRUNTIME/doc/<file>"
List all tags in a file
awk -F'\t' '$2 == "<file>" {print $1}' "$VIMRUNTIME/doc/tags"
List all help files
ls "$VIMRUNTIME/doc/"*.txt
Output format
Always return the full raw help text — not a summary or paraphrase.
Single file
State the file path above the code block, then the raw vimdoc in a fenced block:
From $VIMRUNTIME/doc/lua.txt:
vim.keymap.set({modes}, {lhs}, {rhs}, {opts}) *vim.keymap.set()*
...
Multiple files
Use separate code blocks for each help file, each with its own file path above.
Exploratory searches
When a keyword search returns multiple tags, show the most relevant section in full.
Then list other relevant tags the user can request next.
Context7 (optional)
If the Context7 MCP tool is available, query it for richer Lua code examples using
library ID neovim/neovim. This complements the exact parameter signatures from
local help docs.
General rules
- Do not put the file path inside the code block — always above it
- Do not narrate how the text was found
- If multiple help files are relevant, use separate code blocks per file