第二章. Gemini Cil 基础交互:两个符号走天下
第二章. Gemini Cil 基础交互:两个符号走天下
Prorise第二章. Gemini Cil 基础交互:两个符号走天下
本章将教你掌握 Gemini CLI 的核心交互语法。重点是 @ 符号(引用文件)和 ! 符号(执行命令)。这两个符号是你日常使用中最高频的操作,掌握它们就掌握了 80%的功能。
2.1. 交互模式的三种启动方式
在项目目录或任意空目录中运行 gemini,出现 > 提示符后,你就进入了交互模式。这是最常用的方式,适合探索性开发和学习。
启动 Gemini CLI:
1 | gemini |
你会看到类似这样的界面:
1 |
|
这个 > 就是输入提示符,你可以在这里输入任何问题或指令。
启动方式 1:基础模式
1 | gemini |
这是最简单的启动方式,CLI 会加载当前目录的上下文(如果有 .gemini\GEMINI.md 文件)。
启动方式 2:包含额外目录
有时候你的项目依赖其他目录的代码,比如一个共享的工具库。你可以用 --include-directories 参数:
1 | gemini --include-directories ..\shared-utils,..\common-types |
注意 Windows 下的路径分隔符是反斜杠 \,但在命令行参数中,你也可以用正斜杠 /,PowerShell 会自动转换。
启动方式 3:指定模型
如果你想用更快的 Flash 模型,或者你是付费用户想用 Gemini 3 Flash:
1 | gemini -m gemini-2.5-flash |
2.2. @符号:引用文件和目录
@ 符号是 Gemini CLI 最强大的功能之一。它让你可以直接把文件内容注入到对话中,而不需要手动复制粘贴。
基础用法:引用单个文件
假设你有一个 src\auth.ts 文件,想让 AI 解释它的逻辑:
1 | > @src\auth.ts 解释这个文件的认证流程 |
Gemini CLI 会自动读取 src\auth.ts 的内容,然后基于这些内容回答你的问题。你不需要手动打开文件、复制代码、粘贴到对话框——这一切都是自动的。
Windows 路径可以用反斜杠 \ 或正斜杠 /,Gemini CLI 都能识别。但为了保持一致性,建议统一使用反斜杠。
进阶用法:引用整个目录
如果你想让 AI 理解整个组件库的结构,可以引用整个目录:
1 | > @src\components 分析这些组件的设计模式 |
Gemini CLI 会递归读取 src\components 下的所有文件,但有一个聪明的设计:它会自动遵循 .gitignore 规则。这意味着 node_modules、dist、.next 这些不需要的文件会被自动跳过。
为什么这很重要?因为如果你不小心把 node_modules 也喂给 AI,那 100 万 Token 的上下文窗口瞬间就被占满了,而且都是无用信息。Gemini CLI 帮你避免了这个坑。
多文件引用
你可以在一行中引用多个文件:
1 | > @src\api\user.ts @src\types\user.ts @src\utils\validation.ts 这三个文件的类型定义不一致,请统一它们 |
Gemini CLI 会依次读取这些文件,然后基于所有内容给出建议。
引用时的路径补全
当你输入 @ 后,按 Tab 键,Gemini CLI 会自动显示当前目录下的文件和文件夹列表。这个功能特别方便,你不需要记住完整的路径。
Windows 特有问题:路径中的空格
如果你的项目路径中有空格(比如 D:\my projects\app\src\main.ts),在引用时需要用引号包裹:
1 | > @"D:\my projects\app\src\main.ts" 分析这个文件 |
但如果你已经在项目目录内,使用相对路径就不需要引号:
1 | > @src\main.ts 分析这个文件 |
2.3. ! 符号:执行 Shell 命令
! 符号让你可以在 Gemini CLI 内部执行 Shell 命令,并把输出结果展示给 AI。这在代码审查和调试时特别有用。
基础用法:查看 Git 状态
1 | > !git status |
Gemini CLI 会执行 git status 命令,把输出结果显示在屏幕上,同时也传递给 AI。你可以接着问:
1 | > 这些未提交的文件有什么问题吗? |
AI 会基于刚才的 git status 输出给出建议。
进阶用法:代码审查
这是我最常用的一个组合:
1 | > !git diff --staged |
第一行执行 git diff --staged,显示暂存区的代码变更。第二行让 AI 审查这些变更。整个过程不需要离开 Gemini CLI,非常流畅。
示例:查看项目文件
1 | > !dir /b src |
这会列出 src 目录下的所有文件和文件夹(/b 参数表示只显示名称,不显示详细信息)。
示例:查看文件内容
1 | > !type README.md |
Shell 模式切换
如果你需要连续执行多个命令,可以切换到 Shell 模式:
1 | > ! |
输入 ! 进入 Shell 模式,再输入 ! 退出。在 Shell 模式下,你输入的每一行都会被当作 Shell 命令执行。
环境变量注入
Gemini CLI 在执行 Shell 命令时,会自动注入一个环境变量 GEMINI_CLI=1。你可以在脚本中检测这个变量,实现不同的行为。
在 PowerShell 中检测:
1 | if ($env:GEMINI_CLI -eq "1") { |
2.4. 非交互模式:脚本化调用
除了交互模式,Gemini CLI 还支持非交互模式,适合脚本自动化和 CI/CD 集成。
单次查询
1 | gemini -p "列出1到10的质数" |
输出:
1 | 1到10之间的质数有:2, 3, 5, 7 |
管道输入
在 PowerShell 中,管道的使用方式和 Linux 类似:
1 | type README.md | gemini -p "总结这份文档" |
或者:
1 | echo "怎么样才能躺平?" | gemini |
JSON 输出
如果你需要在脚本中处理 Gemini CLI 的输出,可以用 --output-format json:
1 | $result = gemini -p "什么是机器学习?" --output-format json | ConvertFrom-Json |
输出结构:
1 | { |
流式 JSON 输出
对于长时间运行的任务,你可能想实时监控进度。使用 --output-format stream-json:
1 | gemini -p "分析整个项目并生成报告" --output-format stream-json |
输出是换行分隔的 JSON 事件流:
1 | {"type":"init","model":"gemini-2.5-pro"} |
在 PowerShell 中过滤特定事件:
1 | gemini -p "运行测试" --output-format stream-json | ForEach-Object { |
2.5. 实战案例:自动化工作流
让我们用一个真实的例子,展示如何把 Gemini CLI 集成到日常工作流中。
场景:自动生成 Commit Message
每次提交代码时,写 Commit Message 是个烦人的事情。我们可以让 Gemini CLI 自动生成。
创建一个 PowerShell 脚本 git-commit-ai.ps1:
1 | # 检查是否有暂存的文件 |
使用方法:
1 | git add . |
首次运行 PowerShell 脚本时,可能会遇到 “无法加载,因为在此系统上禁止运行脚本” 的错误。解决方法:以管理员身份打开 PowerShell,运行 Set-ExecutionPolicy RemoteSigned,然后输入 Y 确认。
场景:生成 Release Notes
1 | # 获取上一个版本到当前的所有commit |
2.6. Windows 环境的特殊配置
在 Windows 上使用 Gemini CLI,有一些特殊的配置需要注意。
配置文件位置
Gemini CLI 的配置文件在 Windows 上的位置是:
1 | C:\Users\你的用户名\.gemini\ |
这个目录下包含:
settings.json- 全局配置.env- 环境变量(如 API Key)GEMINI.md- 全局上下文mcp-oauth-tokens.json- OAuth 令牌
环境变量设置
在 Windows 上设置永久环境变量有两种方式:
方式 1:通过系统设置(推荐)
- 按
Win键,搜索 “环境变量” - 点击 “编辑系统环境变量”
- 点击 “环境变量” 按钮
- 在 “用户变量” 区域,点击 “新建”
- 变量名:
GEMINI_API_KEY - 变量值:你的 API 密钥
- 点击 “确定” 保存
方式 2:通过 PowerShell
1 | [System.Environment]::SetEnvironmentVariable('GEMINI_API_KEY', '你的API密钥', 'User') |
设置后,需要重新打开 PowerShell 窗口才能生效。
验证环境变量是否设置成功:
1 | $env:GEMINI_API_KEY |
如果显示你的 API 密钥,说明设置成功。
2.7. 本节小结
我们在本节学习了 Gemini CLI 的核心交互语法,并针对 Windows 环境做了详细说明。核心要点:
| 符号 | 作用 | Windows 示例 |
|---|---|---|
@ | 引用文件/目录 | @src\auth.ts 解释这个文件 |
! | 执行 Shell 命令 | !git status |
!! | 切换 Shell 模式 | 连续执行多个命令 |
Windows 常用命令速查:
1 | # 查看文件列表 |
Windows 特有注意事项:
- 路径分隔符用反斜杠
\(也可以用正斜杠/) - 路径中有空格必须用引号包裹
- 首次运行脚本需要设置执行策略:
Set-ExecutionPolicy RemoteSigned - 环境变量通过系统设置或 PowerShell 设置
- 盘符切换需要先输入盘符(如
D:)
下一节,我们将深入学习 Memport 机制,了解如何用模块化的方式管理项目上下文。



