vsCode 配置文件
·
我们来用通俗易懂、生活化的方式,一次性讲清楚 VS Code 中两个非常重要的配置文件:launch.json 和 settings.json。它们虽然名字相似,但用途完全不同。
一、先说结论(一句话总结)
- settings.json:是 VS Code 的“个人偏好设置”——比如字体大小、主题颜色、自动保存等,影响的是编辑器本身怎么工作。
- launch.json:是 VS Code 的“调试启动说明书”——告诉 VS Code 怎么运行和调试你的代码(比如用哪个解释器、传什么参数、断点怎么设等)。
💡你可以把 VS Code 想象成一辆车:
settings.json是你调整座椅、后视镜、空调温度(让你舒服地开车);launch.json是你告诉车子:“我要去北京,走高速,中途在保定加油”(具体怎么跑这一趟任务)。
二、settings.json —— 编辑器的“个性设置”
1. 文件位置
- 全局设置(对所有项目生效):
文件 > 首选项 > 设置→ 点右上角{}图标 → 打开settings.json
如果没有直接按 Ctrl + Shift + P,输入settings.json进行创建 - 项目级设置(只对当前项目生效):
在项目根目录下创建.vscode/settings.json
项目级设置会覆盖全局设置。
2. 常见配置项(带解释)
{
// 字体大小
"editor.fontSize": 16,
// 自动保存(改完就存,不用手动 Ctrl+S)
"files.autoSave": "afterDelay",
// 制表符用空格代替,按一次 Tab = 2 个空格
"editor.tabSize": 2,
"editor.insertSpaces": true,
// 显示行号
"editor.lineNumbers": "on",
// 保存时自动格式化代码(需要安装格式化插件如 Prettier)
"editor.formatOnSave": true,
// Python 特定设置:指定 Python 解释器路径(仅对本项目)
"python.defaultInterpreterPath": "./venv/bin/python",
// 忽略某些文件不显示在资源管理器里
"files.exclude": {
"**/__pycache__": true,
"*.log": true
}
}
3. 关键特点
- 影响编辑体验,不影响代码运行逻辑。
- 很多设置可以通过图形界面(设置页面)修改,VS Code 会自动写入
settings.json。 - 插件也会读取这里的配置(比如 ESLint、Prettier)。
三、launch.json —— 调试的“启动脚本”
1. 文件位置
- 只在项目中存在:必须放在项目根目录下的
.vscode/launch.json - 如果没有,点击左侧“运行和调试”面板 → “创建 launch.json” 就能自动生成
2. 核心概念:配置(configurations)
一个 launch.json 可以包含多个调试配置,比如:
- 调试主程序
- 调试测试用例
- 连接远程调试
3. 举个 Python 调试的例子(最常见)
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: 当前文件", // 调试配置的名字(显示在下拉菜单里)
"type": "python", // 调试器类型(Python、Node.js、C++等)
"request": "launch", // 启动方式:launch(本地运行)或 attach(连接已运行的进程)
"program": "${file}", // 要运行的文件:${file} = 当前打开的文件
"console": "integratedTerminal", // 在 VS Code 内置终端运行(而不是弹出新窗口)
"cwd": "${workspaceFolder}", // 工作目录 = 项目根目录
"env": {}, // 环境变量(可选)
"args": [] // 命令行参数(比如 ["--port", "8080"])
}
]
}
4. 常用变量说明(那些 ${xxx} 是啥?)
| 变量 | 含义 |
|---|---|
${file} |
当前打开的文件完整路径 |
${workspaceFolder} |
当前项目根目录 |
${fileBasename} |
当前文件名(不含路径,如 main.py) |
${fileDirname} |
当前文件所在目录 |
5. 其他语言示例(Node.js)
{
"name": "Launch Node.js",
"type": "node",
"request": "launch",
"program": "${workspaceFolder}/app.js",
"cwd": "${workspaceFolder}",
"env": {
"NODE_ENV": "development"
}
}
6. 关键特点
- 只在你点“调试”按钮(F5)时生效。
- 不同语言需要不同的
type(由对应插件提供,比如 Python 插件提供python类型)。 - 可以配置多个
configuration,调试时从下拉菜单选择。
四、对比总结表
| 项目 | settings.json | launch.json |
|---|---|---|
| 作用 | 设置编辑器行为 | 设置如何运行/调试代码 |
| 生效时机 | 打开 VS Code 或项目时 | 点击“调试”(F5)时 |
| 位置 | 全局 or 项目级 | 仅项目级(.vscode/ 下) |
| 是否必需 | 否(有默认值) | 调试时才需要 |
| 示例配置 | 字体、自动保存、缩进 | 程序入口、参数、环境变量 |
五、新手建议
- 先用图形界面设置:VS Code 的设置(齿轮图标)和调试面板都很友好,改完会自动生成 JSON。
- 不要怕改错:这两个文件都是纯文本,改错了删掉重来就行。
- 项目共享时:
settings.json(项目级)可以提交到 Git,让团队统一格式。launch.json也可以提交,方便大家用相同方式调试。
- 遇到问题:按
Ctrl+Shift+P输入 “Preferences: Open Settings (JSON)” 或 “Debug: Open launch.json” 快速打开。
✅ 现在你应该明白了:
- 想让代码看起来舒服?→ 改
settings.json - 想让代码跑起来能调试?→ 配
launch.json
以上是在配置Django项目时遇到配置文件搞不清楚而进行的学习,下面解决Django项目配置的问题:
配置如下,当时以为配置重复或者冲突:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Django",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/manage.py",
"args": [
"runserver",
"--noreload"
],
"django": true,
"justMyCode": true,
"env": {
"PYTHONPATH": "${workspaceFolder}",
"DJANGO_SETTINGS_MODULE": "helloworld.settings"
},
"console": "integratedTerminal"
},
{
"name": "Python: Current File",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true
}
]
}
你的 launch.json 不是重复的,而是两个不同的调试配置,各自有明确用途,完全可以共存,而且这种写法非常常见、合理!
下面我用通俗的方式帮你逐条解释,并说明它们的区别和用途:
🔹 配置 1:"name": "Python: Django"
{
"name": "Python: Django",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/manage.py",
"args": ["runserver", "--noreload"],
"django": true,
"justMyCode": true,
"env": {
"PYTHONPATH": "${workspaceFolder}",
"DJANGO_SETTINGS_MODULE": "helloworld.settings"
},
"console": "integratedTerminal"
}
✅ 用途:
专门用来调试整个 Django 项目(启动开发服务器并支持断点调试)。
📌 关键字段解释:
"program": 运行manage.py(Django 的入口)"args": 相当于你在终端输入python manage.py runserver --noreload--noreload很重要!因为 Django 默认会自动重启子进程,导致调试器断开。加了这个才能稳定调试。
"django": true: 告诉 VS Code 这是 Django 项目,启用 Django 特有的调试支持(比如模板调试等)"env": 设置环境变量DJANGO_SETTINGS_MODULE: 指定你的 settings 文件路径(这里是helloworld/settings.py)PYTHONPATH: 确保项目根目录在 Python 路径中,避免导入错误
"console": 在 VS Code 内置终端运行,方便看日志
💡 你点击“运行和调试” → 选择 “Python: Django” → 就能启动带调试功能的 Django 开发服务器!
🔹 配置 2:"name": "Python: Current File"
{
"name": "Python: Current File",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true
}
✅ 用途:
用来调试当前打开的任意 Python 文件(比如一个独立脚本 test.py、工具函数等)。
📌 关键字段解释:
"program": "${file}": 运行你当前正在编辑的文件- 没有指定
env或args,所以它就是一个通用的“运行当前文件”配置 - 适合测试单个
.py文件,而不是整个 Web 项目
💡 你打开
utils.py,然后选择这个配置点 F5,就会直接运行utils.py并调试。
❓那它们会冲突吗?
不会!
VS Code 的调试系统允许你定义多个配置,每次调试前你可以从下拉菜单选择用哪一个:
- 调 Django?选 “Python: Django”
- 调一个脚本?选 “Python: Current File”
✅ 建议保留两者
这是 最佳实践!很多官方文档和开发者都这么配。
如果你只做 Django 开发,也可以删掉第二个;但保留它对调试工具脚本、数据处理脚本等非常方便。
🔧 小优化建议(可选)
如果你的 Django 项目使用了虚拟环境,可以加上:
"python": "${workspaceFolder}/venv/bin/python" // Linux/macOS
// 或
"python": "${workspaceFolder}/venv/Scripts/python.exe" // Windows
这样确保调试时用的是项目虚拟环境的 Python。
✅ 总结
| 配置名 | 用途 | 是否重复 |
|---|---|---|
Python: Django |
启动并调试整个 Django 服务 | ❌ 不重复 |
Python: Current File |
调试当前打开的任意 .py 文件 |
❌ 不重复 |
✅ 你的配置完全正确,无需删除任何一个!
更多推荐
所有评论(0)