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

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.xdnf.cn/news/12127.html

相关文章:

  • 循序渐进kubernetes之Lens
  • 华为云服务器 Java 项目部署 “版本穿越” 危机破解指南
  • STM32实战:智能环境监测站设计方案
  • spel 多层list嵌套表达式踩坑记
  • 数据结构与算法学习笔记(Acwing 提高课)----动态规划·树形DP
  • 互联网大厂Java求职面试:云原生架构下的微服务网关与可观测性设计
  • SQL进阶之旅 Day 15:动态SQL与条件查询构建
  • 使用nginx代理mqtt服务
  • 算法分析与设计-动态规划、贪心算法
  • 对抗性提示:大型语言模型的安全性测试
  • 多模态大语言模型arxiv论文略读(107)
  • HTTP(超文本传输协议)详解
  • HarmonyOS Next 弹窗系列教程(4)
  • 【OpenGL学习】(四)统一着色和插值着色
  • 完成一个可交互的k8s管理平台的页面开发
  • [蓝桥杯]碱基
  • 2025年智能物联网与电子信息国际会议 (IITEI 2025)
  • QT开发技术【ffmpeg + QAudioOutput】音乐播放器
  • 【Docker 从入门到实战全攻略(二):核心概念 + 命令详解 + 部署案例】
  • [Java 基础]面向对象-多态
  • 电脑频繁黑屏怎么办
  • c++ STL 仿函数和适配器(算法常用)
  • 【Python金融笔记】加载数据与可视化
  • Appium+python自动化(八)- 认识Appium- 下章
  • JVM 内存溢出 详解
  • 数据结构第八章(一) 插入排序
  • DeviceNET从站转EtherNET/IP主站在盐化工行业的创新应用
  • 中国城市建成区数据集(1992-2020)V1.0
  • DataStreamAPI实践原理——快速上手(实操详细版)
  • skynet monitor线程的作用