Gemini CLI 专业技巧与使用指南
本指南涵盖了约30个专业技巧,用于有效利用Gemini CLI进行智能编码。
Gemini CLI是一个开源的AI助手,将Google Gemini模型的力量直接带入你的终端。它作为一个对话式、“智能体”的命令行工具——意味着它可以推理你的请求、选择工具(如运行shell命令或编辑文件),并执行多步骤计划来协助你的开发工作流程。
快速入门
安装: 你可以通过npm安装Gemini CLI。要进行全局安装,请使用:
|
|
或者使用npx在不安装的情况下运行:
|
|
Gemini CLI可在所有主要平台上使用(它是用Node.js/TypeScript构建的)。安装后,只需在终端中运行gemini命令即可启动交互式CLI。
身份验证: 首次使用时,你需要向Gemini服务进行身份验证。你有两种选择:(1) Google帐户登录(免费层) - 这让你可以免费使用Gemini 2.5 Pro,具有慷慨的使用限制(大约每分钟60个请求,每天1,000个请求)。启动时,Gemini CLI会提示你使用Google帐户登录(无需账单)。 (2) API密钥(付费或更高层级的访问) - 你可以从Google AI Studio获取API密钥,并设置环境变量GEMINI_API_KEY来使用它。
例如,添加到你的shell配置文件中:
|
|
基本用法: 要启动交互式会话,只需无参数运行gemini。你将看到一个gemini>提示符,你可以在其中键入请求或命令。例如:
|
|
然后你可以观看Gemini CLI创建文件、安装依赖、运行测试等,以完成你的请求。如果你更喜欢一次性调用(非交互式),请使用-p标志和提示,例如:
|
|
这将输出一个响应并退出。你也可以将输入管道传输到Gemini CLI:例如,echo "数到10" | gemini将通过stdin输入提示。
CLI界面: Gemini CLI提供了一个丰富的类REPL界面。它支持斜杠命令(以/为前缀的特殊命令,用于控制会话、工具和设置)和感叹号命令(以!为前缀直接执行shell命令)。我们将在下面的专业技巧中介绍其中许多内容。默认情况下,Gemini CLI以安全模式运行,任何修改系统的操作(写入文件、运行shell命令等)都会请求确认。当提出工具操作时,你将看到一个差异或命令,并被提示(Y/n)批准或拒绝。这确保了AI不会在你不知情的情况下进行不必要的更改。
技巧 1: 使用 GEMINI.md 保持持久上下文
快速用例:停止在提示中重复自己。通过创建一个GEMINI.md文件来提供项目特定的上下文或指令,这样AI无需每次都被告知就能始终掌握重要的背景知识。
当在一个项目上工作时,你经常有一些总体的细节——例如,编码风格指南、项目架构或重要事实——你希望AI记住。Gemini CLI允许你将它们编码在一个或多个GEMINI.md文件中。只需在你的项目中创建一个.gemini文件夹(如果尚不存在),并添加一个名为GEMINI.md的Markdown文件,其中包含你希望AI持久保留的任何注释或指令。例如:
|
|
将此文件放在你的项目根目录(或子目录中以获得更细粒度的上下文)中。现在,每当你在该项目中运行gemini时,它将自动将这些指令加载到上下文中。这意味着模型将始终以这些指令为基础,避免需要在每个提示前附加相同的指导。
工作原理: Gemini CLI使用分层上下文加载系统。它将全局上下文(来自~/.gemini/GEMINI.md,你可以用于跨项目默认值)与你的项目特定GEMINI.md组合,甚至包括子文件夹中的上下文文件。更具体的文件会覆盖更通用的文件。你可以在任何时候使用以下命令检查加载了什么上下文:
|
|
这将显示AI看到的完整组合上下文。如果你更改了你的GEMINI.md,使用/memory refresh重新加载上下文而无需重启会话。
技巧 2: 创建自定义斜杠命令
快速用例:通过定义自己的斜杠命令来加速重复性任务。例如,你可以创建一个命令/test:gen从描述生成单元测试,或/db:reset删除并重新创建测试数据库。这扩展了Gemini CLI的功能,并提供了适合你工作流的一行式命令。
Gemini CLI支持自定义斜杠命令,你可以在简单的配置文件中定义它们。在底层,这些本质上是预定义的提示模板。要创建一个,请在~/.gemini/下创建一个commands/目录用于全局命令,或在你的项目的.gemini/文件夹中用于项目特定命令。在commands/内部,为每个新命令创建一个TOML文件。文件名格式决定了命令名称:例如,文件test/gen.toml定义了一个命令/test:gen。
让我们看一个示例。假设你想要一个命令根据需求描述生成单元测试。你可以用以下内容创建~/.gemini/commands/test/gen.toml:
|
|
现在,在重新加载或重启Gemini CLI后,你可以简单地输入:
|
|
Gemini CLI将识别/test:gen并用提供的参数(在这种情况下是需求)替换提示模板中的{{args}}。然后AI将据此生成Jest单元测试。
这种机制非常强大——实际上,你可以用自然语言编写AI脚本。社区已经创建了许多有用的自定义命令。例如,Google的DevRel团队分享了一组10个实用的工作流命令(通过一个开源仓库),演示了如何脚本化常见流程,如创建API文档、清理数据或设置样板代码。
技巧 3: 使用你自己的MCP服务器扩展Gemini
快速用例:假设你希望Gemini与外部系统或自定义工具接口——例如,查询专有数据库,或与Figma设计集成。你可以通过运行一个自定义模型上下文协议(MCP)服务器并将其插入Gemini CLI来实现。MCP服务器让你可以为Gemini添加新工具和能力,有效地扩展这个智能体。
Gemini CLI自带几个开箱即用的MCP服务器(例如,启用Google搜索、代码执行沙箱等),你可以添加自己的。MCP服务器本质上是一个外部进程(可以是本地脚本、微服务,甚至是云端点),它遵循一个简单的协议来处理Gemini的任务。这种架构使Gemini CLI具有极大的可扩展性。
示例: 一些社区和Google提供的MCP集成包括Figma MCP(从Figma获取设计细节)、剪贴板MCP(从系统剪贴板读写)等。实际上,在内部演示中,Gemini CLI团队展示了一个“Google Docs MCP”服务器,允许将内容直接保存到Google Docs。
如何添加一个: 你可以通过你的settings.json或使用CLI来配置MCP服务器。对于一个快速设置,尝试CLI命令:
|
|
这将注册一个名为“myserver”的服务器,Gemini CLI将通过运行给定的命令(这里是一个Python模块)在端口8080上启动它。
MCP的力量: MCP服务器可以提供丰富的多模态结果。例如,通过MCP提供的工具可以返回图像或格式化表格作为Gemini CLI响应的一部分。它们还支持OAuth 2.0,因此你可以通过MCP工具安全地连接到API(如Google的API、GitHub等),而无需暴露凭据。本质上,如果你可以编写代码,你就可以将其包装为MCP工具——将Gemini CLI转变为一个可以协调许多服务的枢纽。
技巧 4: 利用记忆添加与召回
快速用例:通过将重要事实添加到其长期记忆中,让AI随时可用。例如,在弄清楚数据库端口或API令牌后,你可以:
|
|
这将存储该事实,以便你(或AI)以后不会忘记。然后,你可以在任何时候通过/memory show来回忆内存中的所有内容。
/memory命令提供了一种简单但强大的持久记忆机制。当你使用/memory add <text>时,给定的文本被附加到你的项目的全局上下文中(技术上,它被保存到全局的~/.gemini/GEMINI.md文件或项目的GEMINI.md中)。这有点像做笔记并将其钉在AI的虚拟公告板上。一旦添加,AI将在未来的交互中,跨会话始终在提示上下文中看到该注释。
使用 /memory:
/memory add "<text>"- 将一个事实或注释添加到记忆中(持久上下文)。这将用新条目立即更新GEMINI.md。/memory show- 显示记忆的全部内容(即当前加载的组合上下文文件)。/memory refresh- 从磁盘重新加载上下文(如果你在Gemini CLI之外手动编辑了GEMINI.md文件,或者多个人正在协作编辑它,这很有用)。
因为记忆以Markdown格式存储,你也可以手动编辑GEMINI.md文件来整理或组织信息。
技巧 5: 使用检查点和 /restore 作为撤销按钮
快速用例:如果Gemini CLI对你的文件进行了一系列你不满意的更改,你可以立即回滚到之前的状态。启动Gemini时启用检查点功能(或在设置中),并使用/restore命令撤销更改,就像轻量级的Git还原。/restore将你的工作空间回滚到保存的检查点;根据检查点的捕获方式,对话状态可能会受到影响。
Gemini CLI的检查点功能就像一个安全网。启用后,CLI会在每次执行修改文件的工具之前,对你的项目文件进行快照。如果出现问题,你可以恢复到最后一个已知的良好状态。这本质上是AI操作的版本控制,无需你手动提交到Git。
如何使用它: 你可以通过使用--checkpointing标志启动CLI来开启检查点功能:
|
|
或者,你可以通过添加到你的配置(在settings.json中设置"checkpointing": { "enabled": true })来使其成为默认值。
如果然后你意识到AI所做的编辑有问题,你有两个选择:
- 运行
/restore list(或仅/restore无参数)以查看最近检查点的列表,包含时间戳和描述。 - 运行
/restore <id>以回滚到特定检查点。如果省略id并且只有一个待处理的检查点,它将默认恢复那个。
最佳实践: 对于非平凡的任务,保持检查点开启是个好主意。开销很小,并且它提供了安心。如果你发现不需要检查点(一切顺利),你总是可以清除它,或者让下一个检查点覆盖它。
技巧 6: 读取Google文档、表格等。
快速用例:假设你有一个包含某些规范或数据的Google文档或表格,你希望AI使用。与其复制粘贴内容,你可以提供链接,通过配置的Workspace MCP服务器,Gemini CLI可以获取并读取它。
例如:
|
|
Gemini可以拉取该文档的内容并将其纳入其响应中。类似地,它可以通过链接读取Google表格或Drive文件。
工作原理: 这些功能通常通过MCP集成启用。Google的Gemini CLI团队已经构建(或正在构建)用于Google Workspace的连接器。一种方法是运行一个小的MCP服务器,该服务器在给定URL或ID时使用Google的API(Docs API、Sheets API等)来检索文档内容。
使用技巧: 当你有这些工具时,使用它们就像在你的提示中提供链接一样简单(AI可能会自动调用工具来获取它),或者使用斜杠命令如/doc open <URL>。
技巧 7: 使用 @ 引用文件和图像以获取显式上下文
快速用例:与其口头描述文件内容或图像,不如直接指向它们。使用@语法,你可以将文件、目录或图像附加到你的提示中。这保证AI看到这些文件中的确切内容作为上下文。例如:
|
|
这将在提示中包含src/main.js的内容(在Gemini的上下文大小限制内),因此AI可以读取并解释它。
这个@文件引用是Gemini CLI对开发者最强大的功能之一。它消除了歧义——你不是要求模型依赖记忆或猜测文件,而是直接给它文件来读取。你可以将其用于源代码、文本文档、日志等。类似地,你可以引用整个目录:
|
|
通过附加以斜杠结尾的路径,Gemini CLI将递归地包含该目录中的文件(在合理范围内,尊重忽略文件和大小的限制)。
更令人印象深刻的是,你可以在提示中引用图像等二进制文件。Gemini CLI(使用Gemini模型的多模态能力)可以理解图像。例如:
|
|
该图像将被馈送到模型中,AI可能会回答类似“这是一个登录页面,带有蓝色登录按钮和标题图像”等。
技巧 8: 即时工具创建(让Gemini构建助手)
快速用例:如果手头的任务可以受益于一个小脚本或实用程序,你可以要求Gemini CLI为你创建该工具——就在你的会话中。例如,你可能会说,“编写一个Python脚本来解析此文件夹中的所有JSON文件并提取错误字段。”Gemini可以生成脚本,然后你可以通过CLI执行它。本质上,你可以在需要时动态扩展工具集。
Gemini CLI不仅限于其预先存在的工具;它可以利用其编码能力在需要时创建新工具。这通常是隐式发生的:如果你请求复杂的东西,AI可能会提议编写一个临时文件(带代码)然后运行它。作为用户,你也可以明确指导这个过程:
创建脚本: 你可以提示Gemini用你选择的语言创建脚本或程序。它可能会使用write_file工具来创建文件。例如:
|
|
Gemini CLI将起草代码,并在你批准后,将其写入一个文件(例如script.js)。然后,你可以通过使用! shell命令(例如!node script.js)或要求Gemini CLI执行它来运行它。
关键好处: 自动化。与其你手动停下来编写助手脚本,不如让AI在流程中完成它。
技巧 9: 使用Gemini CLI进行系统故障排查和配置
快速用例:你可以在代码项目之外运行Gemini CLI来帮助完成一般系统任务——将其视为你的操作系统的智能助手。例如,如果你的shell行为异常,你可以在主目录中打开Gemini并询问:“修复我的.bashrc文件,它有一个错误。”然后Gemini可以打开并编辑你的配置文件。
此技巧强调,Gemini CLI不仅适用于编码项目——它也是你整个开发环境的AI助手。许多用户已使用Gemini自定义他们的开发设置或修复他们机器上的问题。
编辑点文件: 你可以通过引用它(@~/.bashrc)加载你的shell配置(.bashrc或.zshrc),然后要求Gemini CLI优化或排查故障。例如,“我的PATH没有获取Go二进制文件,你能编辑我的.bashrc来修复这个问题吗?”AI可以插入正确的export行。它将在保存更改前向你显示差异以供确认。
诊断错误: 如果你在终端或应用程序日志中遇到一个神秘的错误,你可以复制它并将其提供给Gemini CLI。它将分析错误消息并通常建议解决步骤。这类似于如何使用StackOverflow或Google,但由AI直接检查你的场景。
技巧 10: YOLO模式 - 自动批准工具操作(谨慎使用)
快速用例:如果你感到自信(或冒险),你可以让Gemini CLI运行工具操作,而无需每次都向你请求确认。这就是YOLO模式(你只活一次)。它通过--yolo标志启用,或者在会话期间按Ctrl+Y启用。在YOLO模式下,一旦AI决定使用一个工具(如运行shell命令或写入文件),它会立即执行,而没有“批准?(y/n)”提示。
为什么使用YOLO模式? 主要是为了在你信任AI操作时的速度和便利性。
大警告: YOLO模式功能强大但有风险。Gemini团队自己将其标记为“勇敢的用户”——意味着你应该意识到AI可能在没有询问的情况下执行危险命令。在正常模式下,如果AI决定运行rm -rf /(最坏情况),你显然会拒绝。在YOLO模式下,该命令将立即运行(并且很可能毁掉你的一天)。
最佳实践: 如果你想要一些便利而不冒全部风险,请考虑允许特定命令列表。例如,你可以在配置中设置某些工具或命令模式不需要确认(例如允许所有git命令,或只读操作)。这样,你可能不需要全局YOLO模式——你只在安全的命令上选择性地使用YOLO。
技巧 11: 无头和脚本模式(在后台运行Gemini CLI)
快速用例:你可以通过以无头模式运行Gemini CLI在脚本或自动化中使用它。这意味着你通过命令行参数或环境变量提供提示(甚至完整的对话),Gemini CLI生成输出并退出。这对于与其他工具集成或在计划上触发AI任务非常有用。
系统提示覆盖: 如果你希望使用自定义系统角色或指令集(不同于默认值)运行Gemini CLI,你可以使用环境变量GEMINI_SYSTEM_MD。通过设置此变量,你告诉Gemini CLI忽略其内置系统提示并使用你提供的文件。例如:
|
|
脚本化与shell管道: 你可以管道传输文本,还可以传输文件或命令输出到Gemini。例如:gemini -p "总结此日志:" < big_log.txt将把big_log.txt的内容馈送到提示中。
为什么无头模式很重要: 它将Gemini CLI从交互式助手转变为其他程序可以调用的后端服务或实用程序。
技巧 12: 保存和恢复聊天会话
快速用例:如果你使用Gemini CLI排查问题一小时需要停止,你不必丢失对话上下文。使用/chat save <name>保存会话。稍后(即使在重启CLI后),你可以使用/chat resume <name>来恢复你离开的地方。这样,长时间运行的对话可以暂停并无缝继续。
要了解的命令:
/chat save <tag>- 将当前对话状态保存在你提供的标签/名称下。/chat list- 列出所有你保存的会话。/chat resume <tag>- 恢复具有该标签的会话,将整个对话上下文和历史恢复到保存时的状态。
在底层,这些会话很可能存储在~/.gemini/chats/或类似的位置。它们包括对话消息和任何相关状态。
技巧 13: 多目录工作空间 - 一个Gemini,多个文件夹
快速用例:你有一个跨多个仓库或目录的项目吗?你可以启动Gemini CLI并同时访问所有这些目录,这样它就能看到一个统一的工作空间。例如,如果你的前端和后端是分开的文件夹,你可以同时包含两者,以便Gemini可以编辑或引用两个中的文件。
有两种方式:
- 启动标志: 启动Gemini CLI时使用
--include-directories(或-I)标志。例如:1gemini --include-directories "../backend:../frontend" - 持久设置: 在你的
settings.json中,你可以定义"includeDirectories": ["path1", "path2", ...]。
当多目录模式激活时,CLI的上下文和工具会考虑跨所有包含位置的文件。
技巧 14: 使用AI协助组织和清理文件
快速用例:厌倦了杂乱的下载文件夹或混乱的项目资源吗?你可以借助Gemini CLI作为一个智能组织者。通过向它提供目录的概览,它可以对文件进行分类,甚至将它们移动到子文件夹中(在你的批准下)。例如,“清理我的下载:将图像移动到Images文件夹,PDF移动到Documents,并删除临时文件。”
因为Gemini CLI可以读取文件名、大小,甚至窥视文件内容,它可以做出关于文件组织的明智决策。一个社区创建的工具名为“Janitor AI”展示了这一点:它通过Gemini CLI运行以将文件分类为重要与垃圾,并相应地分组。
两遍方法: Janitor AI的讨论提到了一个两步过程:首先广泛分类(重要 vs 垃圾 vs 其他),然后细化组。你可以模仿这一点:首先将可能可以删除的文件(也许是大型安装程序.dmg文件或重复文件)与要保留的文件分开。然后专注于组织保留的文件。
安全提示: 当让AI在文件移动或删除上自由操作时,要有备份或至少准备好撤销(使用/restore或你自己的备份)。
技巧 15: 压缩长对话以保持在上下文限制内
快速用例:如果你与Gemini CLI长时间聊天,你可能会碰到模型的上下文长度限制,或者只是发现会话变得难以管理。使用/compress命令来总结迄今为止的对话,用简洁的摘要替换完整的历史记录。这为更多讨论腾出了空间,而无需从头开始。
大型语言模型有固定的上下文窗口(Gemini 2.5 Pro的非常大,但并非无限)。如果你超过了它,模型可能开始忘记早期的消息或失去连贯性。/compress功能本质上是你的会话的AI生成的tl;dr,保留了重要点。
工作原理: 当你输入/compress时,Gemini CLI将获取整个对话(系统上下文除外)并生成摘要。然后它将用该摘要替换聊天历史记录,作为一个单一的系统或助手消息,保留必要的细节但丢弃逐分钟的对话。它将表明压缩发生了。
压缩后: 你可以正常继续对话。如果需要,你可以在非常长的会话中多次压缩。每次你都会失去一些粒度。
记忆 vs 压缩: 注意压缩不会保存到长期记忆,它是对话本地的。如果你有永远不想丢失的事实,请考虑技巧4(添加到/memory)——因为记忆条目将在压缩中保留(它们将被重新插入,因为它们已经在GEMINI.md上下文中)。
技巧 16: 使用 ! 透传Shell命令(与你的终端对话)
快速用例:在Gemini CLI会话的任何时候,你可以通过在它们前面加上!来运行实际的shell命令。例如,如果你想检查git状态,只需输入!git status,它将在你的终端中执行。这使你免于切换窗口或上下文——你仍然在Gemini CLI中,但你本质上是在告诉它“让我快速运行这个命令”。
单命令: 只需在提示开头加上!,后跟任何命令和参数。这将在当前工作目录中执行该命令,并内联显示输出。例如:
|
|
持久shell模式: 如果你单独输入!并回车,Gemini CLI会切换到一个子模式,你会得到一个shell提示符(通常看起来像shell>或类似)。现在你可以交互式地输入多个shell命令。这基本上是CLI内的一个迷你shell。你再次在空行上输入!(或exit)来退出此模式。
为什么这很有用? 因为开发是行动和询问的混合体。
技巧 17: 将每个CLI工具视为潜在的Gemini工具
快速用例:意识到Gemini CLI可以利用你系统上安装的任何命令行工具作为其问题解决的一部分。AI可以访问shell,所以如果你有cURL、ImageMagick、git、Docker或任何其他工具,Gemini可以在适当时调用它。换句话说,你的整个$PATH就是AI的工具包。这大大扩展了它可以做的事情——远远超出其内置工具。
例如,假设你问:“将此文件夹中的所有PNG图像转换为WebP格式。”如果你安装了ImageMagick的convert实用程序,Gemini CLI可能会计划类似:为每个文件使用带有convert命令的shell循环。
环境注意事项: “能力越大,责任越大。”由于每个shell工具都是公平的游戏,你应该确保你的$PATH不包括任何你不希望AI无意中运行的东西。
技巧 18: 利用多模态AI - 让Gemini看到图像等
快速用例:Gemini CLI不仅限于文本——它是多模态的。这意味着它可以分析图像、图表,甚至PDF(如果提供的话)。利用这一点。例如,你可以说“这是一个错误对话框的屏幕截图,@./error.png - 帮助我排查这个问题。”AI将“看到”图像并做出相应的响应。
UI/UX反馈: 如果你是正在与设计师合作的开发者,你可以放入一个UI图像并要求Gemini提供反馈或生成代码。“查看这个UI模型@mockup.png,并为其生成一个React组件结构。”
OCR和数据提取: 如果你有错误文本的屏幕截图或文档照片,Gemini通常可以从中读取文本。例如,“从invoice.png中提取文本并将其放入结构化格式。”
使用注意事项: 当你@image.png时,确保图像不是太大(尽管模型可以处理相当大的图像)。CLI可能会对其进行编码并发送给模型。
技巧 19: 自定义 $PATH(和工具可用性)以确保稳定性
快速用例:如果你发现Gemini CLI感到困惑或调用错误的程序,请考虑使用定制的$PATH运行它。通过限制或排序可用的可执行文件,你可以防止AI调用,比如说,一个你意想不到的类似命名的脚本。本质上,你将其工具访问沙盒化到已知良好的工具。
对于大多数用户来说,这不是问题,但对于拥有许多自定义脚本或工具多个版本的高级用户来说,这可能会有帮助。开发者提到的一个原因是避免无限循环或奇怪的行为。例如,如果gemini本身在$PATH中,一个行为失常的AI可能从Gemini内部递归调用gemini(一个奇怪的场景,但从理论上讲是可能的)。
如何为Gemini设置PATH: 最简单的是在启动时内联设置:
|
|
通过沙盒进行隔离: 另一个替代方法是使用--sandbox模式(它使用Docker或Podman在隔离环境中运行工具)。在这种情况下,AI的操作被限制,并且只有沙盒镜像提供的工具。
技巧 20: 使用令牌缓存和统计信息跟踪并减少令牌支出
如果你运行长聊天或重复附加相同的大文件,你可以通过开启令牌缓存和监控使用情况来降低成本并减少延迟。使用API密钥或Vertex AI身份验证,Gemini CLI会自动重用先前发送的系统指令和上下文,因此后续请求更便宜。你可以在CLI中实时看到节省。
如何使用它:
- 使用启用缓存的身份验证模式。当你使用Gemini API密钥或Vertex AI进行身份验证时,可以使用令牌缓存。它目前在OAuth登录时不可用。
- 检查你的使用情况和缓存命中。在会话期间运行stats命令。当缓存处于活动状态时,它会显示总令牌数和缓存字段。
1/stats - 在脚本中捕获指标。以无头模式运行时,输出JSON并解析stats块,其中包括每个模型的
tokens.cached:
技巧 21: 使用 /copy 快速复制到剪贴板
快速用例:将Gemini CLI的最新答案或代码片段立即复制到系统剪贴板,无需任何额外的格式或行号。这非常适合快速将AI生成的代码粘贴到编辑器中,或与队友分享结果。
当Gemini CLI提供一个答案(尤其是多行代码块)时,你通常想在其他地方重用它。/copy斜杠命令通过将CLI产生的最后一个输出直接复制到你的剪贴板,使这变得毫不费力。
工作原理: /copy命令要求你的系统有可用的剪贴板工具。在macOS和Windows上,所需的工具(分别是pbcopy和clip)通常是预安装的。在Linux上,你可能需要安装xclip或xsel才能使/copy正常工作。确保这一点后,你可以在Gemini CLI打印答案后随时使用/copy。它将捕获整个最后一个响应(即使很长),并省略CLI可能在屏幕上显示的任何内部编号或格式。
技巧 22: 掌握 Ctrl+C 用于Shell模式和退出
快速用例:用一个按键组合即可干净地中断Gemini CLI或退出shell模式——并通过快速双击完全退出CLI——这得益于多功能的Ctrl+C快捷键。当你需要停止或退出时,这给了你即时控制。
按一次Ctrl+C将取消当前操作或清除你已开始输入的任何内容,本质上充当“中止”命令。例如,如果AI正在生成长答案,而你已经看够了,按Ctrl+C——生成立即停止。如果你已经开始输入提示但想要丢弃它,Ctrl+C将清除输入行,以便你可以重新开始。
连续按两次Ctrl+C是退出Gemini CLI的快捷方式。把它看作是“Ctrl+C取消,再按Ctrl+C退出。”这个双击信号通知CLI终止会话(你将看到一个告别消息或程序将关闭)。
专业提示: 在shell模式中,你也可以按Esc键离开shell模式并返回到Gemini的聊天模式,而无需终止CLI。
技巧 23: 使用 settings.json 自定义Gemini CLI
快速用例:通过编辑settings.json配置文件来调整CLI的行为和外观以适应你的偏好或项目约定,而不是坚持一刀切的默认值。这让你可以强制执行诸如主题、工具使用规则或编辑器模式等所有会话的配置。
Gemini CLI是高度可配置的。在你的主目录(~/.gemini/)或项目文件夹(你的仓库内的.gemini/)中,你可以创建一个settings.json文件来覆盖默认设置。CLI几乎每个方面都可以在这里调整——从视觉主题到工具权限。
在settings.json内部: 选项被指定为JSON键值对。以下是一个片段,说明了一些有用的自定义:
|
|
编辑设置的便捷方式: 通过内置的设置UI。在Gemini CLI中运行命令/settings,它将为你的配置打开一个交互式编辑器。
专业提示: 为不同的需求维护单独的项目特定settings.json文件。
技巧 24: 利用IDE集成(VS Code)获取上下文和差异对比
快速用例:通过将Gemini CLI挂钩到VS Code中来增强其能力——CLI将自动知道你正在处理哪些文件,甚至会在VS Code的差异编辑器中打开AI提议的代码更改。这在AI助手和你的编码工作空间之间创建了一个无缝循环。
当连接后,Gemini知道你打开的文件、当前光标位置以及你在VS Code中选择的任何文本。所有这些信息都会馈送到AI的上下文中。因此,如果你问“解释这个函数”,Gemini CLI可以看到你突出显示的精确函数,并给出相关的答案,而无需你将代码复制粘贴到提示中。
如何设置: 如果你在VS Code的集成终端内启动Gemini CLI,它将检测到VS Code,并且通常会提示你自动安装/连接扩展。你可以同意,它将运行必要的/ide install步骤。如果你没有看到提示(或者稍后启用它),只需打开Gemini CLI并运行命令:/ide install。接下来,运行/ide enable建立连接——CLI将随后表明它已链接到VS Code。
技巧 25: 使用Gemini CLI GitHub Action自动化仓库任务
快速用例:让Gemini在GitHub上工作——使用Gemini CLI GitHub Action自动分流新问题和审查仓库中的拉取请求,充当处理常规开发任务的AI队友。
Gemini CLI不仅适用于交互式终端会话;它也可以通过GitHub Actions在CI/CD管道中运行。Google提供了一个现成的Gemini CLI GitHub Action(目前处于测试版),该Action集成到你的仓库工作流中。这实际上是在你的GitHub项目中部署了一个AI智能体。
设置Gemini CLI GitHub Action: 首先,确保你在本地安装了Gemini CLI版本0.1.18或更高版本(这确保了与Action的兼容性)。然后,在Gemini CLI中运行特殊命令:/setup-github。此命令在你的仓库中生成必要的工作流文件(如果需要,它将指导你完成身份验证)。具体来说,它在.github/workflows/下添加了YAML工作流文件(用于问题分流、PR审查等)。你需要将你的Gemini API密钥添加到仓库的secret中(作为GEMINI_API_KEY),以便Action可以使用Gemini API。
专业提示: 在GitHub Actions日志中关注Action的输出以获得透明度。
技巧 26: 启用遥测以获得洞察力和可观察性
快速用例:通过开启其内置的OpenTelemetry(OTEL)检测,更深入地了解Gemini CLI的使用情况和性能——监控你的AI会话的指标、日志和跟踪,以分析使用模式或排查问题。
默认情况下,遥测是关闭的(Gemini尊重隐私和性能)。你可以选择加入,方法是在settings.json中设置"telemetry.enabled": true,或者使用--telemetry标志启动Gemini CLI。
遥测可以捕获哪些洞察? 遥测捕获诸如工具执行、错误和重要里程碑之类的事件。它还记录诸如提示处理时间和每个提示的令牌计数等指标。对于使用分析,你可能会汇总你的团队中每个斜杠命令的使用次数,或者代码生成的调用频率。
专业提示: 如果你只想快速查看当前会话的统计信息(无需完整遥测),请使用/stats命令。
技巧 27: 关注路线图(后台智能体等)
快速用例:随时了解即将推出的Gemini CLI功能——通过关注公共的Gemini CLI路线图,你将在主要计划增强功能(如用于长时间运行任务的后台智能体)到来之前了解它们,从而让你能够规划并提供反馈。
Google在GitHub上为Gemini CLI维护一个公共路线图,详细说明了近期的主要关注领域和功能目标。这本质上是一个活的文档(和一组问题),你可以在其中看到开发人员正在做什么以及管道中有什么。
通过关注路线图,你还将了解其他计划中的功能。这些可能包括新的工具集成、对额外Gemini模型版本的支持、UI/UX改进等。
专业提示: 由于Gemini CLI是开源的(Apache 2.0许可),你可以做的不仅仅是观看路线图——你可以参与其中!维护者欢迎贡献,特别是与路线图一致的项目。
技巧 28: 使用扩展扩展Gemini CLI
快速用例:通过安装即插即用的扩展为Gemini CLI添加新功能——例如,集成到你最喜欢的数据库或云服务——无需你付出太多努力就能扩展AI的工具集。这就像为你的CLI安装应用程序来教它新技巧。
扩展是在2025年末引入的一个游戏规则改变者:它们允许你以模块化方式定制和扩展Gemini CLI的功能。
使用扩展非常简单。CLI有一个管理它们的命令:gemini extensions install <URL>。通常,你提供扩展的GitHub仓库URL或本地路径,CLI将获取并安装它。
围绕扩展的开放生态系统。Google有一个官方扩展页面,列出了可用的扩展,并且因为该框架是开放的,任何人都可以创建和共享他们自己的扩展。
专业提示: 如果你正在构建自己的扩展,首先查看现有的扩展作为示例。
附加乐趣:Corgi模式彩蛋 🐕
最后,不是一个生产力技巧,而是一个令人愉快的彩蛋——在Gemini CLI中尝试命令/corgi。这将切换“corgi模式”,这会让一个可爱的corgi动画在你的终端上运行!它不能帮助你更好地编码,但它肯定可以在长时间的编码会话中提升情绪。你会看到ASCII艺术的corgi在CLI界面中奔跑。要关闭它,只需再次运行/corgi。
这是一个纯粹为了好玩的功能(是的,甚至有一个关于花费开发时间在corgi模式上的半开玩笑的辩论)。它表明创作者在工具中隐藏了一些奇思妙想。所以当你需要快速休息或微笑时,试试/corgi。