当前位置: 首页 > article >正文

VSCode 工作区配置文件通用模板创建脚本

下面是分别使用 PythonShell(Bash)脚本 自动生成 .vscode 文件夹及其三个核心配置文件(settings.jsontasks.jsonlaunch.json)的完整示例。
在这里插入图片描述

你可以选择你熟悉的语言版本来使用,非常适合自动化项目初始化流程。


✅ 自动化目标

生成以下结构:

.vscode/
├── settings.json
├── tasks.json
└── launch.json

适用于 C++ / Qt 项目,基于 VSCode + CMake + Ninja + MinGW/GCC 环境。


🐍 Python 脚本版

import os
import jsonVS_CODE_DIR = ".vscode"CONFIGS = {"settings.json": {"cmake.generator": "Ninja","cmake.configureOnOpen": True,"cmake.buildDirectory": "${workspaceFolder}/build","cmake.clearOutputBeforeBuild": True,"cmake.useCmakeListsTxt": True,"files.exclude": {"**/.git": True,"**/.DS_Store": True,"**/__pycache__": True},"editor.tabSize": 4,"editor.formatOnSave": True},"tasks.json": {"version": "2.0.0","tasks": [{"label": "CMake: Configure","type": "shell","command": "cmake","args": ["-B", "${workspaceFolder}/build", "-G", "Ninja"],"group": {"kind": "build", "isDefault": True},"problemMatcher": ["$cmake"]},{"label": "CMake: Build","type": "shell","command": "cmake","args": ["--build", "${workspaceFolder}/build"],"group": {"kind": "build", "isDefault": True},"problemMatcher": ["$cmake"]},{"label": "CMake: Clean","type": "shell","command": "rm -rf build/*"}]},"launch.json": {"version": "0.2.0","configurations": [{"name": "GDB Debug","type": "cppdbg","request": "launch","program": "${workspaceFolder}/build/myapp.exe","args": [],"stopAtEntry": False,"cwd": "${workspaceFolder}","environment": [],"externalConsole": True,"MIMode": "gdb","miDebuggerPath": "C:\\msys64\\mingw64\\bin\\gdb.exe"}]}
}def create_vscode_config():if not os.path.exists(VS_CODE_DIR):os.makedirs(VS_CODE_DIR)for filename, content in CONFIGS.items():path = os.path.join(VS_CODE_DIR, filename)with open(path, 'w', encoding='utf-8') as f:json.dump(content, f, indent=4)print(f"✅ 已创建 {path}")if __name__ == "__main__":create_vscode_config()

💡 使用方法:

  1. 将上述代码保存为 generate_vscode.py
  2. 在你的项目根目录下运行:
    python generate_vscode.py
    

🐚 Shell(Bash)脚本版(适用于 Linux/macOS/WSL)

#!/bin/bashVS_CODE_DIR=".vscode"mkdir -p "$VS_CODE_DIR"# settings.json
cat > "$VS_CODE_DIR/settings.json" << EOL
{"cmake.generator": "Ninja","cmake.configureOnOpen": true,"cmake.buildDirectory": "\${workspaceFolder}/build","cmake.clearOutputBeforeBuild": true,"cmake.useCmakeListsTxt": true,"files.exclude": {"**/.git": true,"**/.DS_Store": true,"**/__pycache__": true},"editor.tabSize": 4,"editor.formatOnSave": true
}
EOL# tasks.json
cat > "$VS_CODE_DIR/tasks.json" << EOL
{"version": "2.0.0","tasks": [{"label": "CMake: Configure","type": "shell","command": "cmake","args": ["-B", "\${workspaceFolder}/build", "-G", "Ninja"],"group": { "kind": "build", "isDefault": true },"problemMatcher": ["\$cmake"]},{"label": "CMake: Build","type": "shell","command": "cmake","args": ["--build", "\${workspaceFolder}/build"],"group": { "kind": "build", "isDefault": true },"problemMatcher": ["\$cmake"]},{"label": "CMake: Clean","type": "shell","command": "rm -rf build/*"}]
}
EOL# launch.json
cat > "$VS_CODE_DIR/launch.json" << EOL
{"version": "0.2.0","configurations": [{"name": "GDB Debug","type": "cppdbg","request": "launch","program": "\${workspaceFolder}/build/myapp.exe","args": [],"stopAtEntry": false,"cwd": "\${workspaceFolder}","environment": [],"externalConsole": true,"MIMode": "gdb","miDebuggerPath": "C:\\\\msys64\\\\mingw64\\\\bin\\\\gdb.exe"}]
}
EOLecho "✅ .vscode 配置已生成在当前目录"

💡 使用方法:

  1. 将上面内容保存为 generate_vscode.sh
  2. 赋予执行权限并运行:
    chmod +x generate_vscode.sh
    ./generate_vscode.sh
    

📝 注意事项

  • 如果你用的是 Windows 并且使用 CMD 或 PowerShell,建议用 Python 版;
  • miDebuggerPath 需要根据你本地的 GDB 安装路径修改;
  • 如果你使用 MSVC 编译器,需要将 launch.json 中的调试器类型改为 Windows Debugger
  • 你可以将这个脚本集成到项目模板中,或添加到 CI/CD 初始化流程中。
http://www.lryc.cn/news/2401023.html

相关文章:

  • echarts显示/隐藏标签的同时,始终显示饼图中间文字
  • 【Spring AI】调用 DeepSeek 实现问答聊天
  • Java消息队列与安全实战:谢飞机的烧饼摊故事
  • parquet :开源的列式存储文件格式
  • SpringBoot关于文件上传超出大小限制--设置了全局异常但是没有正常捕获的情况+捕获后没有正常响应返给前端
  • 【Go语言】Ebiten游戏库开发者文档 (v2.8.8)
  • Spring Boot应用开发实战
  • 实验设计与分析(第6版,Montgomery著,傅珏生译) 第9章三水平和混合水平析因设计与分式析因设计9.5节思考题9.1 R语言解题
  • Pycharm 配置解释器
  • learn react course
  • SQL进阶之旅 Day 11:复杂JOIN查询优化
  • web第八次课后作业--分层解耦
  • MySQL 事务深度解析:面试核心知识点与实战
  • 使用Redis作为缓存,提高MongoDB的读写速度
  • 【图片自动识别改名】识别图片中的文字并批量改名的工具,根据文字对图片批量改名,基于QT和腾讯OCR识别的实现方案
  • Kafka消息队列笔记
  • 机器人变量类型与配置
  • nssm配置springboot项目环境,注册为windows服务
  • 20-项目部署(Docker)
  • Python学习(6) ----- Python2和Python3的区别
  • 零基础安装 Python 教程:从下载到环境配置一步到位(支持 VSCode 和 PyCharm)与常用操作系统操作指南
  • SAP学习笔记 - 开发18 - 前端Fiori开发 应用描述符(manifest.json)的用途
  • 分类与逻辑回归 - 一个完整的guide
  • 一键试衣,6G显存可跑
  • 跟着deepseek浅学分布式事务(2) - 两阶段提交(2PC)
  • 【仿生机器人软件架构】通过整合认知系统实现自主精神性——认知系统非常具有可执行性
  • 20250602在Ubuntu20.04.6下修改压缩包的日期和时间
  • Fullstack 面试复习笔记:项目梳理总结
  • 星闪开发之Server-Client 指令交互控制OLED灯案例
  • MySQL补充知识点学习