应使用disable (workspace)为每个项目单独禁用插件,该操作写入项目根目录.vscode/extensions.json的"disabled"数组,仅影响当前工作区而不干扰其他项目。

怎么让每个项目用不同的插件?
VSCode 默认所有文件夹共享同一套插件,但你完全可以让 A 项目只加载 ms-python.python,B 项目只加载 ms-vscode.cpptools——关键不是“禁用全局插件”,而是**用工作区禁用(workspace disable)**。
操作很简单:打开某个文件夹 → 左侧扩展图标 → 在插件列表里找到不想用的插件 → 点击右键 → 选择 Disable (Workspace)。这个动作会写入当前文件夹下的 .vscode/extensions.json,内容类似:
{
"recommendations": [],
"unwantedRecommendations": [],
"disabled": [
"ms-python.python",
"esbenp.prettier-vscode"
]
}
注意:Disable (Workspace) 和 Disable (Global) 效果完全不同;前者只影响当前文件夹,后者会影响所有项目;误点全局禁用会导致其他项目 Python 插件失效,很难排查。
插件装在哪?改路径会影响已有插件吗?
插件默认装在用户目录下:%USERPROFILE%\.vscode\extensions(Windows)、~/.vscode/extensions(macOS/Linux)。这个路径本身不随项目变化,所以改插件安装路径不会影响已启用的插件逻辑,但会切断旧路径的加载链。
如果你用 code --extensions-dir D:\vscode-ext 启动,VSCode 就完全忽略默认路径,只从 D:\vscode-ext 加载插件。已安装在旧路径的插件不会自动迁移,必须手动复制或重装。
- 适合场景:多环境隔离(比如嵌入式开发 vs Web 开发用不同插件集)
- 风险点:重启 VSCode 时忘记加
--extensions-dir参数,插件就全没了 - 验证方式:命令面板运行
Developer: Show Extensions Folder,看打开的是否是你指定的路径
为什么在某个文件夹里 Ctrl+Shift+F 搜不到 .h 文件?
不是插件问题,是搜索路径被 search.exclude 或 search.files.exclude 静默过滤了。VSCode 默认把 **/*.h 当作“非源码文件”排除,尤其在 C/C++ 项目里容易踩坑。
解决方法:在该文件夹的 .vscode/settings.json 中显式放开:
{
"search.exclude": {
"**/*.h": false,
"**/*.hpp": false
}
}
更稳妥的做法是用 search.include 白名单限定范围,比如:
"search.include": {
"${workspaceFolder}/src/**": true,
"${workspaceFolder}/include/**": true
}
这样既避免搜到无关日志,又确保头文件被纳入。别依赖全局设置——search.exclude 的优先级高于全局,但只对当前工作区生效。
新建文件夹后插件配置没生效?检查这三处
刚建好一个新文件夹,打开 VSCode,发现插件没自动启用、代码高亮不对、Ctrl+Click 跳转失败……大概率是以下三个地方漏配:
-
.vscode/settings.json缺失:没有它,VSCode 就用全局设置,而全局通常不设files.associations或C_Cpp.intelliSenseMode -
.vscode/c_cpp_properties.json(C/C++ 项目)或.vscode/launch.json(调试)没生成:这些不是自动创建的,得靠插件首次激活或手动触发命令(如C/C++: Edit Configurations (UI)) - 工作区没真正“打开”:直接双击
.vscode/settings.json打开 VSCode,它只是以单文件模式启动,.vscode目录不会被识别为工作区配置入口;必须用File → Open Folder...或命令行code /path/to/folder
路径变量如 ${workspaceFolder} 只在完整工作区模式下解析,单文件模式下它就是空字符串——这是最隐蔽也最常见的配置失效原因。











