Best practices for Denops plugin implementation drawn from lambdalisue's Denops plugins. Use when Codex needs concrete patterns for buffer/local/global/env vars, key mappings, and Vimscript/TypeScript boundaries in Denops plugins based on those repos.
Use this skill to ground Denops implementation details in lambdalisue's Denops plugins only.
vars.b.get and error if missing.
Source: denops/gin/command/blame/buffer_utils.ts
https://raw.githubusercontent.com/lambdalisue/vim-gin/main/denops/gin/command/blame/buffer_utils.tsb:did_ftplugin guard + setlocal + <Plug> indirection + g: flag to disable.
Source: ftplugin/gin-status.vim
https://raw.githubusercontent.com/lambdalisue/vim-gin/main/ftplugin/gin-status.vimbatch.gather + batch.batch to reduce RPCs.
Source: denops/askpass/main.ts
https://raw.githubusercontent.com/lambdalisue/vim-askpass/main/denops/askpass/main.tsget(g:, name, default) at plugin entry.
Source: plugin/kensaku.vim
https://raw.githubusercontent.com/lambdalisue/vim-kensaku/main/plugin/kensaku.vimcollect to read v: and g: at once; coerce booleans.
Source: denops/guise/main.ts
https://raw.githubusercontent.com/lambdalisue/vim-guise/main/denops/guise/main.tsdenops#notify, then wire autocmd.
Source: plugin/chameleon.vim
https://raw.githubusercontent.com/lambdalisue/vim-chameleon/main/plugin/chameleon.vimdenops.interrupted and return Symbol.asyncDispose.
Source: denops/chameleon/main.ts
https://raw.githubusercontent.com/lambdalisue/vim-chameleon/main/denops/chameleon/main.tsfn.* calls with collect.
Source: denops/initial/main.ts
https://raw.githubusercontent.com/lambdalisue/vim-initial/main/denops/initial/main.tsdenops.interrupted with local AbortController.
Source: denops/refine/main.ts
https://raw.githubusercontent.com/lambdalisue/vim-refine/main/denops/refine/main.tsfinish, then augroup + autocmd.
Source: plugin/guise.vim
https://raw.githubusercontent.com/lambdalisue/vim-guise/main/plugin/guise.vimreferences/denops-author-examples.md and extract the closest matching example.@denops/std modules for Vim interactions instead of raw denops.call when an example shows that pattern.<Plug> indirections as shown in the references.Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer