VSCode没有默认启动参数,所有启动参数必须通过code命令行显式传入;launch.json中的args仅用于F5调试时传递给目标程序,与VSCode自身启动无关。

VSCode 没有“默认启动参数”这个全局配置项,所有启动参数都必须通过命令行显式传入,settings.json 里无法定义。 你看到的“设置默认参数”其实是混淆了两个完全不同的机制:一个是 VSCode 自身的启动行为(由 code 命令控制),另一个是调试器(如 Python、Node.js)运行目标程序时的参数(由 launch.json 的 args 控制)。前者影响编辑器怎么开,后者只影响你按 F5 时脚本怎么跑。
code 命令启动时必须手动加参数
VSCode 启动参数不是配置出来的,是每次调用 code 时临时指定的。它不读取任何 JSON 配置文件里的“启动参数字段”,也没有 --set 或 --config 参数来注入自定义设置。
-
code --disable-extensions:禁用全部扩展,排查问题最常用 -
code --no-reopen-last --folder-uri file:///path/to/project:强制打开指定路径,且不恢复上次会话 -
code --user-data-dir="/path/to/isolated-config":切换整套用户环境(含 settings.json、扩展、历史记录),适合多项目隔离 -
code --read-only /etc/hosts:以只读方式打开单个文件,防止误改 -
code --devtools --skip-getting-started:启动即开开发者工具,跳过欢迎页,适合自动化或调试流程
注意:--user-data-dir 路径不能含波浪线 ~,也不能相对;含空格必须加双引号;首次运行会初始化该目录,后续复用其中的 settings.json。
launch.json 的 args 不是 VSCode 启动参数
很多人把 launch.json 里的 args 当成 VSCode 的“启动参数”,这是根本性误解。args 只在按 F5 调试时,由调试器传给你的 Python/Node.js 等目标程序,和 VSCode 自身怎么启动毫无关系。
-
args必须是字符串数组:["--port", "3000", "--env", "dev"],不能写成"--port 3000" - 右键“Run Python File”或 Code Runner 插件完全不读
args,它们直接执行python main.py - 想让“Debug Python File”按钮也生效,得加
"purpose": ["debug-in-terminal"],且配置名必须是Python: Current File (Integrated Terminal) - 参数解析逻辑(如
argparse)必须放在if __name__ == "__main__":块内,否则模块导入阶段就崩溃
terminal.integrated.cwd 是终端路径,不是启动参数
很多人搜“默认启动参数”实际想要的是终端一打开就在项目根目录。这不是启动参数,而是终端配置项:terminal.integrated.cwd。
- 设为
"${workspaceFolder}":最常用,新开终端自动 cd 到当前工作区根目录 - 设为
"${fileDirname}":适合单文件操作场景,比如编辑一个 shell 脚本后立刻运行它 - 设为绝对路径如
"/home/user/my-project":固定路径,但跨机器迁移时易失效 - 该设置写在
settings.json里,无需重启 VSCode,新建终端立即生效
它不影响 VSCode 怎么启动,只影响集成终端内部的初始工作目录。
真正容易被忽略的点是:VSCode 启动行为本身没有“默认参数”概念,所有定制都靠命令行临时传参或换用户数据目录。你试图在 GUI 设置里找“启动参数配置”,注定找不到——因为它根本不存在。


















