核心痛点:为什么直接设置 launchEditor 会失败?
很多开发者在使用 Trae、Cursor 或 Agy 等基于 VSCode 二次开发的 AI 编辑器时,习惯在 Vue 项目中配置:
// vite.config.ts
vueDevTools({
launchEditor: 'agy', // 或 'trae' / 'cursor'
})
结果往往是:
- 无法跳转行列:只能打开文件,光标停在第一行。
- 产生废文件:在项目根目录莫名其妙多出一个名为
App.vue:10:5的空文件。
根本原因: Vue DevTools 默认按照 VSCode 的标准发送指令:code 文件路径:行号:列号。 而当你把编辑器换成agy或trae时,这些编辑器的命令行工具(CLI)可能无法像原版code命令那样自动识别带有冒号的字符串。它们会将App.vue:10:5误认为是一个完整的文件名,从而导致跳转失败并创建了一个名字奇怪的新文件。

解决方案:不改配置,“拦截"并"转发”
最优雅的解法是:骗过 DevTools。让它继续调用 code 命令,但我们在系统中埋下一个"钩子",把指令接管过来,并加上显式的跳转参数(如 -g)再转发给 AI 编辑器。
Windows 篇:修改 .cmd 脚本
Windows 用户主要利用环境变量中路径的优先级来完成拦截。
- 步骤:
找到 code.cmd 所在目录(通常在 VSCode 安装目录的 bin 下)。
备份原有的 code.cmd 为 BackCode.cmd 备份就好方便以后回复,随便取个名字。
新建一个 code.cmd,内容如下
@echo off
:: 显式调用 AI 编辑器的路径,并转发所有参数
call "C:\你的路径\Agy\bin\agy.cmd" -g %*
- 找到
code.cmd所在目录(通常在 VSCode 安装目录的bin下)。 - 备份原有的
code.cmd为BackCode.cmd备份就好方便以后回复,随便取个名字。 - 新建一个
code.cmd,内容如下
macOS 篇:路径劫持 (PATH Hijacking)
Mac 下我们通过创建一个高优先级的自定义脚本来接管 code 指令。
第一步:创建拦截脚本 在用户目录下建立一个 bin 文件夹,并写入拦截逻辑
mkdir -p ~/bin
nano ~/bin/code
脚本内容(适配 Agy)
#!/bin/bash
# 获取最后一个参数(即路径:行:列)
TARGET="${@: -1}"
# 显式使用 -g 参数强制 Agy 执行跳转逻辑
/Users/你的用户名/.antigravity/antigravity/bin/agy -g "$TARGET"
注意看脚本路径要改为你自己的