vscode右键“在默认浏览器中打开”听操作系统默认设置,而非vscode自身配置;需在系统设置中将http/https协议默认浏览器设为chrome,并确保插件openinbrowser.default或liveserver.settings.custombrowser等配置与之匹配且重载窗口生效。

VSCode 本身没有“外部默认浏览器”这个统一开关,它打开网页的行为完全取决于你用什么方式打开、以及装了哪些插件。直接右键 → “在默认浏览器中打开”,走的是操作系统级调用,不是 VSCode 自己选的。
右键“在默认浏览器中打开”到底听谁的
这个动作本质是执行系统命令:start(Windows)、open(macOS)、xdg-open(Linux)。它只认操作系统当前设的“默认网页浏览器”,和 VSCode 设置无关。
- 验证方法:新建一个
test.txt,双击打开,跳出来哪个浏览器,VSCode 右键 HTML 的“在默认浏览器中打开”就用哪个 - Windows 设置路径:设置 → 应用 → 默认应用 → 按协议指定默认应用 → 找到
http和https,设为 Chrome - macOS 设置路径:系统设置 → 桌面与程序坞 → 默认网页浏览器
- Linux 用户注意:
xdg-settings get default-web-browser查当前值,但 VSCode 不读这个,只是调用xdg-open,所以仍需确保该命令实际启动的是你要的浏览器
Open in Browser 插件的 openInBrowser.default 不等于系统默认
这个配置项只对插件自己的右键菜单生效(比如“Open in Default Browser”),而且它不查系统设置,只按你填的字符串去 spawn 进程。
- 填
"chrome":要求终端能直接运行chrome命令(Windows 需把 Chrome 安装目录加进PATH;macOS/Linux 要which chrome有输出) - 填完整路径更可靠:
"C:\Program Files\Google\Chrome\Application\chrome.exe"(Windows,注意双反斜杠或正斜杠都行);"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"(macOS) - 大小写敏感:
"Chrome"≠"chrome",插件内部是精确字符串匹配 - 没保存的文件、语言模式不是
html的文件,插件根本不会注册右键菜单项
Live Server 的 liveServer.settings.CustomBrowser 是另一套逻辑
它只影响“Open with Live Server”这个动作,和右键“在默认浏览器中打开”完全无关。填了也不改变系统行为。
- 可接受值:
"chrome"(小写)、"firefox"、"msedge",或绝对路径 - Windows/macOS 上填别名有时失效,尤其是企业版 Chrome 或便携版,建议优先试完整路径
- 这个配置改完必须重启 VS Code 或执行
Developer: Reload Window才生效 - 它只控制浏览器启动,不控制 Live Server 启动的端口或是否自动刷新——那是
liveServer.settings.Port和liveServer.settings.AutoReload管的
真正麻烦的地方在于:三个入口(右键菜单、Live Server、调试 F5)各自维护一套浏览器配置,互不通信。你改了 openInBrowser.default,不影响 Live Server;改了 liveServer.settings.CustomBrowser,不影响调试;而系统默认浏览器又只管最基础的右键打开。最容易被忽略的是——所有这些配置改完后,VSCode 都不会热更新,必须重载窗口才能生效。











