在自定义命令中嵌入文件
使用 @{...} 加载固定文件、目录和多模态内容,核对工作区与处理顺序。
This page has not been translated into English yet. The original Chinese version is shown below.
@{...} 在自定义命令模板中直接嵌入内容,适合固定的审阅规范、需求说明或输入材料。它与交互输入中的 @path 是不同的使用形式。
固定规范加任务参数
description = "Review code using the project guide."
prompt = """
Review {{args}} using this project guide:
@{docs/best-practices.md}
Explain concrete issues and proposed fixes.
"""保存为 .gemini/commands/review.toml 并重新加载后,调用 /review src/parser.ts。规范文件内容被嵌入;参数部分仍是任务文本,不应误以为参数路径也已经被模板展开成文件内容。
文件与目录
| 路径指向 | 处理方式 |
|---|---|
| 文本文件 | 内容直接进入提示 |
| 支持的图片、PDF、音频或视频 | 编码为多模态输入;官方列举 PNG、JPEG |
| 其他二进制文件 | 跳过 |
| 目录 | 递归遍历并嵌入各文件内容,不只是输出文件名清单 |
目录处理会遵循已启用的 .gitignore 与 .geminiignore。引用大目录前,应先缩小材料范围;被忽略或跳过的文件不能视为已经提供给模型。过滤配置见忽略文件。
路径范围
CLI 在当前目录和其他工作区目录中寻找路径。绝对路径也可以使用,但必须在工作区范围内;跨目录任务先配置多目录工作区。路径内容中的花括号同样需要平衡。
模板处理顺序
文件注入早于 Shell 注入和参数替换。应采用固定 @{path} 与独立 {{args}} 的组合,不把 @{ {{args}} } 当成官方保证的动态路径语法,也不要依赖同一个模板里的 Shell 先生成文件、再由 @{...} 读取它。