VSCode右键“Open in Default Browser”走系统默认浏览器设置,而非VS Code或插件配置;它调用系统命令(Windows用start、macOS用open、Linux用xdg-open),验证方式为双击test.txt看跳转浏览器。

VSCode右键“Open in Default Browser”到底走谁的默认设置
它不读 VS Code 设置,也不读插件配置,只调用操作系统注册的默认浏览器。Windows 上是 start 命令,macOS 是 open,Linux 是 xdg-open——全由系统决定。
验证方式很简单:新建一个 test.txt,双击打开,跳哪个浏览器,VSCode 的右键菜单就开哪个。别在 VS Code 设置里搜 “default browser”,那根本没这个原生配置项。
- Windows:设置 → 应用 → 默认应用 → Web 浏览器 → 选 Chrome
- macOS:系统设置 → 通用 → 默认网页浏览器 → 选 Google Chrome
- Linux:终端运行
xdg-settings get default-web-browser查当前值,用xdg-settings set default-web-browser google-chrome.desktop改(需对应 desktop 文件存在)
为什么改了 Open in Browser 插件还是开 Edge
因为你没关插件的自动接管行为。装了 Open in Browser 后,它默认把右键菜单“Open in Default Browser”重定向到自己配的浏览器(比如 chrome),而不是系统默认。但如果你填的是 system,它才真正交还控制权。
关键配置项是 open-in-browser.default,不是 openInBrowser.default(注意连字符),也不是 defaultwebbrowser(这个字段根本不存在)。
在 Linux 上通过 Chrome 挂载/VNC 自动发布小红书长笔记。Agent 撰写标题和正文后执行 xhs_publish.sh --publish --submit,触发小红书发布。
- 想让右键严格走系统默认:设
open-in-browser.default为system - 想强制开 Chrome:填
chrome(确保chrome在 PATH 中)或完整路径,如C:Program FilesGoogleChromeApplicationchrome.exe - 填错常见坑:
Google Chrome(空格+大小写)、chrome.exe(末尾多空格)、Chrome(首字母大写部分系统不认)
Live Server 的“Go Live”和右键菜单不是一回事
点击右下角 Go Live 启动本地服务器后,VS Code 实际执行的是 open http://127.0.0.1:5500/xxx.html 这类命令,依然走系统默认浏览器——跟 Open in Browser 插件配置完全无关。
所以你可能遇到:右键“Open in Default Browser”开了 Chrome,但“Go Live”却弹出 Edge。这不是 bug,是两条路径并行。
- 要统一用 Chrome 开 Live Server 页面,必须改
liveServer.settings.CustomBrowser,值可填chrome或绝对路径 - 这个配置只影响“Go Live”,不影响右键菜单;反之亦然
- 填路径时 Windows 反斜杠要转义成
\,或直接用正斜杠/(VS Code 多数情况兼容)
file:// 和 http:// 的区别直接影响 JS 能不能跑
用右键“Open in Default Browser”打开的是 file:// 协议,现代浏览器会禁掉 fetch、localStorage、ES 模块导入等能力。页面静态渲染看着正常,一执行 JS 就报跨域或权限错误——不是你代码写错了,是协议限制。
Live Server 启的是 http://,绕过这些限制,这才是真调试环境。
- 临时查看结构:用
Open in Browser插件 +file://快速够用 - 写交互逻辑、调 API、用模块:必须用
Live Server或其他本地服务(如serve、http-server) - 别指望改插件配置让
file://支持 fetch——浏览器策略层就卡死了,VS Code 控制不了

















