VSCode 不生成 PID 文件,仅通过 files.exclude 配置递归隐藏(如 "*/.pid");需写入工作区 .vscode/settings.json 并重启工作区才生效,排除后文件在资源管理器、Ctrl+P 和全局搜索中均不可见。

VSCode 本身不生成或管理 PID 文件,所谓“程序运行时生成的 pid 进程文件”一定是你启动的服务(如 Node.js、Python、Java 等)自己写的,VSCode 只是调用了它——隐藏这类文件,和 VSCode 的进程管理无关,只和它的文件浏览器显示逻辑有关。
为什么 **/*.pid 规则有时不生效
常见错误是把规则写错位置或格式不对:
- 写在用户级
settings.json里,但项目有工作区级设置,被覆盖了 - 用了
*.pid而不是**/*.pid:前者只匹配根目录下的 .pid 文件,后者才递归匹配所有子目录 - 路径用了反斜杠
\(Windows 风格),而 VSCode 内部统一用正斜杠/解析 glob - 规则前的复选框没勾选 ✅,或者保存后没重开工作区(部分旧版 VSCode 不热更新该配置)
正确添加 **/*.pid 排除规则的步骤
打开设置最稳的方式是直接编辑 JSON:
- 按
Ctrl + ,进入设置 → 右上角齿轮图标 → Settings (JSON) - 在
settings.json中加入(或修改已有files.exclude):
{
"files.exclude": {
"**/*.pid": true,
"**/tmp/**": true,
"**/.DS_Store": true
}
}
- 确保该配置写在 工作区级(即项目根目录下
.vscode/settings.json),否则跨项目不生效 - 改完保存,关闭并重新打开整个工作区(不是 Reload Window),才能确保生效
如果 PID 文件由脚本动态生成且路径不固定怎么办
比如你的 start.sh 每次把 .pid 写到 ./run/app.pid 或 ./tmp/pid,那单靠 **/*.pid 可能漏掉无后缀的 pid 文件。这时建议:
- 统一约定命名,例如强制脚本输出为
app.pid,再配**/app.pid - 更彻底:把整个运行时目录排除,比如
**/run/**、**/tmp/**、**/logs/** - 注意不要误排除源码——避免写成
**/run(会匹配src/run.js),必须带尾部/**
真正容易被忽略的是:PID 文件一旦被排除,就不仅在资源管理器里消失,Ctrl+P 文件搜索、全局搜索(Ctrl+Shift+F)也都找不到它——这不是 bug,是 VSCode 的设计逻辑:exclude 是底层过滤,影响所有基于文件系统的操作。如果你偶尔需要编辑它,临时注释掉 "**/*.pid": true 这一行最省事。











