Skip to content

CLI 命令

Gemini CLI 支持多个内置命令,帮助您管理会话、自定义界面和控制其行为。这些命令以正斜杠(/)、at 符号(@)或感叹号(!)作为前缀。

斜杠命令 (/)

斜杠命令提供对 CLI 本身进行元级别控制。

内置命令

  • /bug

    • 描述: 提交关于 Gemini CLI 的问题。默认情况下,问题会提交到 Gemini CLI 的 GitHub 仓库。您在 /bug 后输入的字符串将成为待提交 bug 的标题。默认的 /bug 行为可以通过您 .gemini/settings.json 文件中的 advanced.bugCommand 设置进行修改。
  • /chat

    • 描述: 保存并恢复对话历史记录,以交互方式进行分支对话状态,或在后续会话中恢复之前的状态。
    • 子命令:
      • save
        • 描述: 保存当前对话历史记录。您必须添加一个 <tag> 来标识对话状态。
        • 用法: /chat save <tag>
        • 检查点位置详情: 保存的聊天检查点的默认位置是:
          • Linux/macOS: ~/.gemini/tmp/<project_hash>/
          • Windows: C:\Users\<YourUsername>\.gemini\tmp\<project_hash>\
          • 当您运行 /chat list 时,CLI 只会扫描这些特定目录来查找可用的检查点。
          • 注意: 这些检查点用于手动保存和恢复对话状态。有关在文件修改前创建的自动检查点,请参阅 检查点文档
      • 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 上,需要 xclipxsel。您通常可以使用系统的包管理器安装它们。
      • 在 macOS 上,需要 pbcopy;在 Windows 上,需要 clip。这些工具通常在其各自的系统上预装。
  • /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) 服务器、它们的连接状态、服务器详细信息以及可用的工具。
    • 子命令:
      • descdescriptions:
        • 描述: 显示 MCP 服务器和工具的详细描述。
      • nodescnodescriptions:
        • 描述: 隐藏工具描述,仅显示工具名称。
      • schema:
        • 描述: 显示工具配置参数的完整 JSON schema。
    • 键盘快捷键: 随时按 Ctrl+T 在显示和隐藏工具描述之间切换。
  • /memory

    • 描述: 管理 AI 的指令上下文(从 GEMINI.md 文件加载的分层内存)。
    • 子命令:
      • add:
        • 描述: 将以下文本添加到 AI 的内存中。用法:/memory add <要记住的文本>
      • show:
        • 描述: 显示已从所有 GEMINI.md 文件加载的当前分层内存的完整、连接内容。这允许您检查提供给 Gemini 模型​​的指令上下文。
      • refresh:
        • 描述: 从所有配置位置(全局、项目/祖先和子目录)中找到的 GEMINI.md 文件重新加载分层指令内存。此命令使用最新的 GEMINI.md 内容更新模型。
      • list:
        • 描述: 列出用于分层内存的 GEMINI.md 文件的路径。
      • 注意: 有关 GEMINI.md 文件如何为分层内存做出贡献的更多详细信息,请参阅 CLI 配置文档
  • /restore

    • 描述: 将项目文件恢复到工具执行之前的状态。这对于撤销工具所做的文件编辑特别有用。如果不带工具调用 ID 运行,它将列出可用的检查点以供恢复。
    • 用法: /restore [tool_call_id]
    • 注意: 仅当 CLI 使用 --checkpointing 选项调用或通过 设置 配置时才可用。有关更多详细信息,请参阅 检查点文档
  • /settings

    • 描述: 打开设置编辑器以查看和修改 Gemini CLI 设置。
    • 详情: 此命令提供了一个用户友好的界面来更改控制 Gemini CLI 行为和外观的设置。它等同于手动编辑 .gemini/settings.json 文件,但带有验证和指导以防止错误。
    • 用法: 只需运行 /settings,编辑器就会打开。然后您可以浏览或搜索特定设置,查看其当前值,并按需修改它们。某些设置的更改会立即应用,而其他设置则需要重启。
  • /stats

    • 描述: 显示当前 Gemini CLI 会话的详细统计信息,包括 token 使用量、缓存 token 节省量(如果可用)和会话时长。注意:仅在使用缓存 token 时显示缓存 token 信息,目前仅在使用 API 密钥身份验证时发生,而使用 OAuth 身份验证时则不显示。
  • /theme

    • 描述: 打开一个对话框,让您更改 Gemini CLI 的视觉主题。
  • /auth

    • 描述: 打开一个对话框,让您更改身份验证方法。
  • /about

    • 描述: 显示版本信息。提交问题时请提供此信息。
  • /tools

    • 描述: 显示当前在 Gemini CLI 中可用的工具列表。
    • 用法: /tools [desc]
    • 子命令:
      • descdescriptions:
        • 描述: 显示每个工具的详细描述,包括每个工具的名称及其提供给模型的完整描述。
      • nodescnodescriptions:
        • 描述: 隐藏工具描述,仅显示工具名称。
  • /privacy

    • 描述: 显示隐私声明,并允许用户选择是否同意收集其数据以改进服务。
  • /quit (或 /exit)

    • 描述: 退出 Gemini CLI。
  • /vim

    • 描述: 切换 vim 模式的开启或关闭。启用 vim 模式后,输入区域在 NORMAL 和 INSERT 模式下都支持 vim 风格的导航和编辑命令。
    • 功能:
      • NORMAL 模式: 使用 hjkl 进行导航;使用 wbe 按单词跳转;使用 0$^ 跳转到行首/行尾;使用 G(或 gg 跳转到第一行)跳转到指定行。
      • INSERT 模式: 标准文本输入,按 Esc 返回 NORMAL 模式。
      • 编辑命令: 使用 x 删除,使用 c 更改,使用 iaoO 插入;复杂的命令如 ddccdwcw
      • 计数支持: 在命令前加上数字(例如 3h5w10G)。
      • 重复上次命令: 使用 . 重复上次编辑操作。
      • 持久设置: Vim 模式偏好设置保存在 ~/.gemini/settings.json 中,并在会话之间恢复。
    • 状态指示器: 启用时,在页脚显示 [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)
  • !(切换 shell 模式)

    • 描述: 单独输入 ! 会切换 shell 模式。
      • 进入 shell 模式:
        • 激活时,shell 模式使用不同的颜色和“Shell 模式指示器”。
        • 在 shell 模式下,您输入的文本会直接被解释为 shell 命令。
      • 退出 shell 模式:
        • 退出时,UI 会恢复其标准外观,并恢复正常的 Gemini CLI 行为。
  • 所有 ! 用法的注意事项: 您在 shell 模式下执行的命令具有与直接在终端中运行它们相同的权限和影响。

  • 环境变量: 当通过 ! 或在 shell 模式下执行命令时,GEMINI_CLI=1 环境变量会在子进程的环境中设置。这允许脚本或工具检测它们是否正在 Gemini CLI 中运行。

基于 MIT 许可证发布