Gemini CLI 接入 VS Code:光标在哪它就知道
2026/8/29 15:59:59 网站建设 项目流程

Gemini CLI 接入 VS Code:光标在哪它就知道

【免费下载链接】gemini-cliAn open-source AI agent that brings the power of Gemini directly into your terminal.项目地址: https://gitcode.com/GitHub_Trending/gemi/gemini-cli

上周我在 VS Code 集成终端里跑 gemini,改动倒是完成了,可编辑器的光标还停在旧接口上,追问一句它又得重新读一遍文件才能接上话。后来把 Gemini CLI 的 VS Code 集成接上,选中文本它马上就能看见,少了一步 @文件、@行号的交代。

从第一行命令到绿灯

前提是先装好 CLI:npm install -g @google/gemini-cli

你遇到的问题:在集成终端里跑gemini,它只认命令行,不知道你编辑器里开着什么文件、光标停在第几行。

你做的事:在 VS Code 的集成终端里敲gemini。第一次运行,它会检测到 IDE 环境并弹出提示:

🟡 IDE detected: Visual Studio Code Would you like to install the Gemini CLI Companion extension? (Y/n) Y

你看到的结果:按 Y 后扩展自动装好,接着在 CLI 里敲/ide status验证:

/ide status 🟢 Connected to Visual Studio Code Recently opened files: - src/types.ts (active, line 42) - src/utils/format.ts - package.json

绿灯亮了,说明编辑器和 CLI 已经通过本地通道对接,你的文件状态会实时推给 CLI。

三种装法对比一下,按你的习惯挑:

安装方式触发条件操作步骤适合场景
自动提示集成终端首次跑 gemini按一次 Y,全自动首次使用,最省事
/ide installCLI 会话内敲命令自动找到匹配的扩展并安装错过了提示、想重装
扩展市场手动装扩展面板搜 "Gemini CLI Companion"装完记得补一句/ide enable离线或要特定版本

⚠️ 第三条最容易被忽略:市场手动装完不 enable,状态灯一直是断的。

整个过程的判断路径:

你的光标和选区,已经在模型眼前了

连上之后,扩展端有一个叫OpenFilesManager的模块在干一件事:把你"现在开着哪些文件"持续汇报给 CLI。你可以把它理解成编辑器的实时旁白。它有三个硬限制,心里有数就行:只保留最近访问的 10 个文件;选中文本超过 16KB 会被截断;状态更新做了 50ms 防抖,你鼠标来回切文件也不会卡。

下面三个场景,都是接入前后体感差别最大的地方。

在 .ts 文件里写接口

你打开src/types.ts,光标停在第 42 行的User接口上,直接说:

> 给当前接口加一个 createdAt 字段,类型是 ISO 8601 字符串

CLI 返回的:

✦ Edited src/types.ts:42 + createdAt: string;

它不用先读文件,因为"你在哪个文件、哪一行"已经在上下文里了。

拖选一段代码再下指令

你拖选一个 30 行的数据处理函数,输入:

> 把选中的这段重构成纯函数,别改变行为

CLI 拿到的是你选中的那段文本加当前文件的周边代码,直接干活。选区超过 16KB 时只有前 16KB 生效,所以特别长的选区,先收窄到一个函数体再下指令更稳。

切到另一个文件,上下文立刻跟着切

你 Ctrl+Tab 切到package.json,问"build 脚本为什么挂了"。此时 CLI 的活跃文件已经换成 package.json,它会直接对着scripts字段分析,而不是去翻别的文件。

拿不准它"看见"了什么,随时敲/ide status,最近文件列表会原样打出来。想看这套机制怎么实现的,可以翻 OpenFilesManager 源码,核心就是监听编辑器切换、选区变化、文件关闭这几类事件。

改动落盘之前,先让你过一遍 diff

让 CLI 改文件时,它不直接写盘,而是在 VS Code 里打开一个原生 diff 视图:左边原文,右边建议改动。这就是 Gemini CLI 的 diff 代码审查,用的是编辑器自带的对比能力。

拿到 diff 后你有三条路:

接受:四种方式任选——点 diff 标题栏的对勾、Ctrl+S 保存、命令面板跑Gemini CLI: Accept Diff、或者直接在 CLI 里回yes

手动改:右边是可直接编辑的文档。AI 提议里某一行你不满意,删掉再保存,落盘的就是你改过的版本。

拒绝:点标题栏的 X、关掉标签页、命令面板跑Gemini CLI: Close Diff Editor、或回no。CLI 端会收到对应通知,建议直接丢弃。

CLI 一侧的交互长这样:

✦ Want to apply the change to src/types.ts? (diff view opened in your editor) > yes ✓ src/types.ts updated

完整往返:

两句提醒:如果你审到一半文件在别处被改了,diff 左侧始终以磁盘为准,看着不对就重新发起一次;CLI 里选"本次会话允许"后改动会跳过 diff 直接落盘,批量小改动很快,但破坏性操作别开这个。diff 生命周期由 DiffManager 源码 里的DiffManager管理。

从个人配置到团队配置

个人层面,配置文件在~/.gemini/settings.json,打开 IDE 模式就一行:

{ "ide": { "enabled": true

【免费下载链接】gemini-cliAn open-source AI agent that brings the power of Gemini directly into your terminal.项目地址: https://gitcode.com/GitHub_Trending/gemi/gemini-cli

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询