先验证code命令是否真正可用,否则所有后续测试都无意义;执行code --version有版本号输出才算成功,若报command not found,说明未注册path或使用非官方安装包。

先验证 code 命令是否真正可用,否则所有后续测试都无意义。
验证 CLI 是否注册到系统 PATH
这是最常被跳过的一步,也是 99% 启动失败的根源。VS Code 安装包默认不自动把 code 加入 PATH,必须手动触发注册。
- 打开任意已运行的 VS Code 窗口 → 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS) - 输入并选择
Shell Command: Install 'code' command in PATH,回车执行 - 关闭所有终端窗口,**新开一个终端**(PATH 变更不会热更新到已有 shell)
- 运行
code --version—— 有版本号输出才算成功;若仍报command not found,说明注册失败或用了非官方安装包(如 Snap、Flatpak、.zip 解压版)
测试 code . 是否正确加载工作区
code . 默认复用已有窗口,不是 bug,但容易误判为“没启动”。关键看左下角是否显示当前文件夹路径,而非 “No folder opened”。
- 确保终端当前目录是真实存在的项目根目录(非符号链接、非 UNC 路径、非网络驱动器)
- 执行
code --new-window .(--new-window不可省略,-n虽等价但易混淆) - 观察:新窗口打开后,资源管理器应完整列出该目录内容;若为空或左下角仍显示旧路径,大概率是路径末尾多了斜杠(如
code ./)或当前目录是挂载点/子模块 - 路径含空格或中文无需引号(VS Code 自 2026 年起已内置处理),但 Windows 下反斜杠需双写:
code C:\Users\me\project
区分 code 和 diff 工具的启动能力
VS Code 的 CLI 不支持 --diff 参数,试图运行 code --diff a.js b.js 会报 Unknown argument --diff 或静默忽略。
-
code a.js b.js只是并排打开两个文件标签页,**不是 diff editor** —— 没有差异高亮、无导航按钮、不能 Accept/Revert - 真要从终端触发对比,只能分两步:先
code a.js,再用快捷键Ctrl+K Ctrl+D(Win/Linux)或Cmd+K Cmd+D(macOS)手动激活 - 不要依赖
vscode://协议自动做 diff,windowId参数不可靠,多窗口时极易发错目标
真正难测的不是命令本身,而是路径解析的边界行为:符号链接目录、WSL 中调用 Windows 版 code、Git 子模块嵌套层级过深——这些情况即使 code --version 成功,code . 也可能只打开空白窗口且不报错。











