CLI 命令
Gemini CLI 支持多个内置命令,帮助您管理会话、自定义界面和控制其行为。这些命令以正斜杠(/)、at 符号(@)或感叹号(!)作为前缀。
斜杠命令 (/)
斜杠命令提供对 CLI 本身进行元级别控制。
内置命令
/bug- 描述: 提交关于 Gemini CLI 的问题。默认情况下,问题会提交到 Gemini CLI 的 GitHub 仓库。您在
/bug后输入的字符串将成为待提交 bug 的标题。默认的/bug行为可以通过您.gemini/settings.json文件中的advanced.bugCommand设置进行修改。
- 描述: 提交关于 Gemini CLI 的问题。默认情况下,问题会提交到 Gemini CLI 的 GitHub 仓库。您在
/chat- 描述: 保存并恢复对话历史记录,以交互方式进行分支对话状态,或在后续会话中恢复之前的状态。
- 子命令:
save- 描述: 保存当前对话历史记录。您必须添加一个
<tag>来标识对话状态。 - 用法:
/chat save <tag> - 检查点位置详情: 保存的聊天检查点的默认位置是:
- Linux/macOS:
~/.gemini/tmp/<project_hash>/ - Windows:
C:\Users\<YourUsername>\.gemini\tmp\<project_hash>\ - 当您运行
/chat list时,CLI 只会扫描这些特定目录来查找可用的检查点。 - 注意: 这些检查点用于手动保存和恢复对话状态。有关在文件修改前创建的自动检查点,请参阅 检查点文档。
- Linux/macOS:
- 描述: 保存当前对话历史记录。您必须添加一个
resume- 描述: 从之前的保存点恢复对话。
- 用法:
/chat resume <tag>
list- 描述: 列出可用于恢复聊天状态的标签。
delete- 描述: 删除已保存的对话检查点。
- 用法:
/chat delete <tag>
share- 描述: 将当前对话写入提供的 Markdown 或 JSON 文件。
- 用法:
/chat share file.md或/chat share file.json。如果未提供文件名,则 CLI 会生成一个。
/clear- 描述: 清除终端屏幕,包括 CLI 中可见的会话历史记录和滚动缓冲区。底层会话数据(用于历史记录回溯)可能会根据具体实现保留,但视觉显示会被清除。
- 键盘快捷键: 随时按 Ctrl+L 执行清除操作。
/compress- 描述: 用摘要替换整个聊天上下文。这可以节省未来任务使用的 token,同时保留已发生事件的高级别摘要。
/copy- 描述: 将 Gemini CLI 生成的最后一条输出复制到剪贴板,方便共享或重用。
- 注意: 此命令需要安装特定于平台的剪贴板工具。
- 在 Linux 上,需要
xclip或xsel。您通常可以使用系统的包管理器安装它们。 - 在 macOS 上,需要
pbcopy;在 Windows 上,需要clip。这些工具通常在其各自的系统上预装。
- 在 Linux 上,需要
/directory(或/dir)- 描述: 管理工作区目录以支持多目录。
- 子命令:
add:- 描述: 将目录添加到工作区。路径可以是绝对路径,也可以是相对于当前工作目录的相对路径。此外,还支持从主目录引用的路径。
- 用法:
/directory add <path1>,<path2> - 注意: 在限制性沙箱配置文件中禁用。如果使用该配置,请在启动会话时改用
--include-directories。
show:- 描述: 显示通过
/directory add和--include-directories添加的所有目录。 - 用法:
/directory show
- 描述: 显示通过
/editor- 描述: 打开一个对话框以选择支持的编辑器。
/extensions- 描述: 列出当前 Gemini CLI 会话中所有活动的扩展。请参阅 Gemini CLI 扩展。
/help(或/?)- 描述: 显示关于 Gemini CLI 的帮助信息,包括可用的命令及其用法。
/mcp- 描述: 列出已配置的模型上下文协议 (MCP) 服务器、它们的连接状态、服务器详细信息以及可用的工具。
- 子命令:
desc或descriptions:- 描述: 显示 MCP 服务器和工具的详细描述。
nodesc或nodescriptions:- 描述: 隐藏工具描述,仅显示工具名称。
schema:- 描述: 显示工具配置参数的完整 JSON schema。
- 键盘快捷键: 随时按 Ctrl+T 在显示和隐藏工具描述之间切换。
/memory- 描述: 管理 AI 的指令上下文(从
GEMINI.md文件加载的分层内存)。 - 子命令:
add:- 描述: 将以下文本添加到 AI 的内存中。用法:
/memory add <要记住的文本>
- 描述: 将以下文本添加到 AI 的内存中。用法:
show:- 描述: 显示已从所有
GEMINI.md文件加载的当前分层内存的完整、连接内容。这允许您检查提供给 Gemini 模型的指令上下文。
- 描述: 显示已从所有
refresh:- 描述: 从所有配置位置(全局、项目/祖先和子目录)中找到的
GEMINI.md文件重新加载分层指令内存。此命令使用最新的GEMINI.md内容更新模型。
- 描述: 从所有配置位置(全局、项目/祖先和子目录)中找到的
list:- 描述: 列出用于分层内存的 GEMINI.md 文件的路径。
- 注意: 有关
GEMINI.md文件如何为分层内存做出贡献的更多详细信息,请参阅 CLI 配置文档。
- 描述: 管理 AI 的指令上下文(从
/restore/settings- 描述: 打开设置编辑器以查看和修改 Gemini CLI 设置。
- 详情: 此命令提供了一个用户友好的界面来更改控制 Gemini CLI 行为和外观的设置。它等同于手动编辑
.gemini/settings.json文件,但带有验证和指导以防止错误。 - 用法: 只需运行
/settings,编辑器就会打开。然后您可以浏览或搜索特定设置,查看其当前值,并按需修改它们。某些设置的更改会立即应用,而其他设置则需要重启。
/stats- 描述: 显示当前 Gemini CLI 会话的详细统计信息,包括 token 使用量、缓存 token 节省量(如果可用)和会话时长。注意:仅在使用缓存 token 时显示缓存 token 信息,目前仅在使用 API 密钥身份验证时发生,而使用 OAuth 身份验证时则不显示。
- 描述: 打开一个对话框,让您更改 Gemini CLI 的视觉主题。
/auth- 描述: 打开一个对话框,让您更改身份验证方法。
/about- 描述: 显示版本信息。提交问题时请提供此信息。
- 描述: 显示当前在 Gemini CLI 中可用的工具列表。
- 用法:
/tools [desc] - 子命令:
desc或descriptions:- 描述: 显示每个工具的详细描述,包括每个工具的名称及其提供给模型的完整描述。
nodesc或nodescriptions:- 描述: 隐藏工具描述,仅显示工具名称。
/privacy- 描述: 显示隐私声明,并允许用户选择是否同意收集其数据以改进服务。
/quit(或/exit)- 描述: 退出 Gemini CLI。
/vim- 描述: 切换 vim 模式的开启或关闭。启用 vim 模式后,输入区域在 NORMAL 和 INSERT 模式下都支持 vim 风格的导航和编辑命令。
- 功能:
- NORMAL 模式: 使用
h、j、k、l进行导航;使用w、b、e按单词跳转;使用0、$、^跳转到行首/行尾;使用G(或gg跳转到第一行)跳转到指定行。 - INSERT 模式: 标准文本输入,按 Esc 返回 NORMAL 模式。
- 编辑命令: 使用
x删除,使用c更改,使用i、a、o、O插入;复杂的命令如dd、cc、dw、cw。 - 计数支持: 在命令前加上数字(例如
3h、5w、10G)。 - 重复上次命令: 使用
.重复上次编辑操作。 - 持久设置: Vim 模式偏好设置保存在
~/.gemini/settings.json中,并在会话之间恢复。
- NORMAL 模式: 使用
- 状态指示器: 启用时,在页脚显示
[NORMAL]或[INSERT]。
/init- 描述: 为了帮助用户轻松创建
GEMINI.md文件,此命令会分析当前目录并生成一个定制的上下文文件,从而简化他们向 Gemini 代理提供项目特定指令的过程。
- 描述: 为了帮助用户轻松创建
自定义命令
自定义命令允许您为最常用的提示创建个性化快捷方式。有关如何创建、管理和使用它们的详细说明,请参阅专门的 自定义命令文档。
输入提示快捷键
这些快捷键直接应用于输入提示以进行文本操作。
撤销:
- 键盘快捷键: 按 Ctrl+z 撤销输入提示中的最后一次操作。
重做:
- 键盘快捷键: 按 Ctrl+Shift+Z 重做输入提示中最后一次撤销的操作。
At 命令 (@)
At 命令用于将文件或目录的内容包含在您发送给 Gemini 的提示中。这些命令包括 git 感知过滤。
@<path_to_file_or_directory>- 描述: 将指定文件或文件的内容注入您当前的提示中。这对于询问有关特定代码、文本或文件集合的问题非常有用。
- 示例:
@path/to/your/file.txt 解释这段文字。@src/my_project/ 总结这个目录中的代码。这个文件是关于什么的? @README.md
- 详情:
- 如果提供的是单个文件的路径,则会读取该文件的内容。
- 如果提供的是目录的路径,命令会尝试读取该目录及其任何子目录中文件的内容。
- 路径中的空格应使用反斜杠进行转义(例如
@My\ Documents/file.txt)。 - 该命令内部使用
read_many_files工具。内容会被获取,然后插入到您的查询中,再发送给 Gemini 模型。 - Git 感知过滤: 默认情况下,会忽略 git 忽略的文件(如
node_modules/、dist/、.env、.git/)。此行为可以通过context.fileFiltering设置进行更改。 - 文件类型: 该命令适用于基于文本的文件。虽然它可能会尝试读取任何文件,但二进制文件或非常大的文件可能会被底层
read_many_files工具跳过或截断,以确保性能和相关性。该工具会指示文件是否被跳过。
- 输出: CLI 将显示一个工具调用消息,指示使用了
read_many_files,并附带一条消息,详细说明状态和已处理的路径。
@(单独的 at 符号)- 描述: 如果您输入单独的
@符号而没有路径,则查询会按原样传递给 Gemini 模型。如果您在提示中专门谈论@符号,这可能会很有用。
- 描述: 如果您输入单独的
@ 命令的错误处理
- 如果
@后面指定的路径未找到或无效,将显示错误消息,并且查询可能不会发送到 Gemini 模型,或者会不带文件内容发送。 - 如果
read_many_files工具遇到错误(例如权限问题),也会报告该错误。
Shell 模式和直通命令 (!)
! 前缀允许您直接在 Gemini CLI 中与系统的 shell 进行交互。
!<shell_command>- 描述: 使用 Linux/macOS 上的
bash或 Windows 上的cmd.exe执行给定的<shell_command>。命令的任何输出或错误都会在终端中显示。 - 示例:
!ls -la(执行ls -la并返回 Gemini CLI)!git status(执行git status并返回 Gemini CLI)
- 描述: 使用 Linux/macOS 上的
!(切换 shell 模式)- 描述: 单独输入
!会切换 shell 模式。- 进入 shell 模式:
- 激活时,shell 模式使用不同的颜色和“Shell 模式指示器”。
- 在 shell 模式下,您输入的文本会直接被解释为 shell 命令。
- 退出 shell 模式:
- 退出时,UI 会恢复其标准外观,并恢复正常的 Gemini CLI 行为。
- 进入 shell 模式:
- 描述: 单独输入
所有
!用法的注意事项: 您在 shell 模式下执行的命令具有与直接在终端中运行它们相同的权限和影响。环境变量: 当通过
!或在 shell 模式下执行命令时,GEMINI_CLI=1环境变量会在子进程的环境中设置。这允许脚本或工具检测它们是否正在 Gemini CLI 中运行。