code命令路径不生效时,应避免使用波浪号~,最稳写法是先cd到目标目录再执行code .,或使用绝对路径(linux/macos用/code /home/user/project,windows用code c:\users\user\project),路径含空格必须加英文双引号。

code命令启动时路径不生效,到底该用什么写法
VSCode 不解析波浪线 ~,也不自动切换工作目录。你敲 code ~/my-project,它真去字面路径找,而不是你家目录下。
- 最稳做法:先
cd到目标目录,再执行code . - 用绝对路径:Linux/macOS 写
code /home/user/my-project,Windows 写code C:\Users\user\my-project - PowerShell 中
code .\src可行,但 CMD 推荐用正斜杠:code ./src,避免反斜杠被转义 - 路径含空格或中文?必须加双引号:
code "./my project"
--max-memory=4096 这个参数只管主进程,不管扩展
--max-memory 是 Electron 12+ 支持的参数,单位 MB,只限制主渲染进程的 V8 堆上限,对 Extension Host 进程完全无效。
-
--disable-extensions能跳过所有扩展初始化,避免 GitLens、ESLint 等后台预热语言服务 -
--disable-gpu在 macOS 外接显示器或 Intel 核显下可省下 200–500MB 内存驻留 - Extension Host 内存泄漏要另配:
"extensionKind": ["local-process"]写进package.json或用vscode.extensions.getExtension()控制加载方式
files.watcherExclude 必须写在工作区 settings.json 里
全局 settings.json 里的 files.watcherExclude 在多工作区场景下经常失效——VSCode 会为每个工作区单独初始化监听器,而工作区级配置优先级更高。
- 在项目根目录建
.vscode/settings.json,写入:{ "files.watcherExclude": { "**/node_modules/**": true, "**/dist/**": true, "**/build/**": true, "**/.git/**": true }, "search.exclude": { "**/node_modules": true, "**/dist": true, "**/build": true } } -
search.exclude只跳过搜索,files.watcherExclude才真正阻止内核级 inotify 句柄注册 - 别漏掉
.git:GitLens 默认监听.git/objects下成千上万个松散对象,极易触发内存泄漏 - 规则必须写全:
**/node_modules/**(两个/),少一个/VSCode 就会忽略
--wait 参数只在首次启动时阻塞终端
--wait 行为有隐含前提:它只在 VSCode 还没运行时才真正阻塞终端;如果后台已有实例,命令会立刻返回,不等你编辑完。
- 适合脚本流程中临时编辑并返回结果,例如:
code --wait config.json && echo "saved" - 想确保一定阻塞?先用
pkill -f 'Code Helper'清掉残留进程(macOS/Linux),再跑code --wait - Windows 上可用
taskkill /f /im Code.exe辅助清理 -
--wait不影响已打开的窗口行为,只控制当前命令行进程的生命周期











