SuperAPI AI 工具集

neovim

通用与其它

查看项目

更新于 10-15 21:47

技能介绍

用途:当 Claude Code 运行在 Neovim 终端内时,环境变量 $NVIM 指向父 Neovim 的 Unix socket,可借助 msgpack-RPC API 直接与运行中的 Neovim 交互,无需插件或 HTTP 服务器。

主要能力:用 --remote-expr 求值 Vimscript 或经 luaeval() 执行 Lua 表达式并取回结果,支持多语句 Lua(IIFE)及用 vim.json.encode 返回表/列表;读取当前缓冲区路径、缓冲区列表、工作目录、光标位置、选项值、已附着的 LSP 客户端等;用 --remote-send 发送按键;用 --remote 或 --remote-tab 远程打开文件。还可查询 lazy.nvim 插件目录与 dev 插件路径、搜索运行时文件与帮助标签。

使用前提与用法:先执行 echo "$NVIM" 确认 socket 可用,为空则说明不在 Neovim 终端内。设置 NVIM_APPNAME 时,nvim --server 命令会向 stdout 输出 Warning 干扰解析,需用命令替换并过滤:result=$(nvim --server "$NVIM" --remote-expr 'EXPR') && echo "$result" | grep -v '^Warning: Using NVIM_APPNAME='。--remote-send 无返回值,无需过滤。读取帮助应取 $VIMRUNTIME 与 stdpath("data") 后用 fd、rg、Read 等工具查看文件,不要用 execute("help")。

适用场景:查询编辑器状态、读取插件与配置信息、远程打开文件、排查 LSP 诊断陈旧问题(重载保存或以 LspRestart 重启后等待约 10 秒)。

限制与安全:不可在未获明确确认时发送 :q、:qa、:bdelete 等破坏性命令,也不得在未询问前修改缓冲区内容;优先使用只读的 --remote-expr。管道中 $NVIM 可能无法正确展开,应使用命令替换。nvim_get_runtime_file 只搜索活动运行时路径,未加载的懒加载插件需通过 lazy.nvim API 查询。部分细节(如参考资料目录具体内容)暂未提供。