Ctrl+Shift+F的“Files to include”框填*/.ts等glob模式可立即限定搜索类型,无需改配置或重启;它与search.exclude无关,仅临时生效,且依赖路径匹配而非语法解析。

直接在 Ctrl+Shift+F 的 “文件包含” 框里填 **/*.ts 或 **/*.vue,就能只搜对应类型——不用改配置、不重启、立刻生效。
在搜索面板里用 files to include 快速限定类型
这是最常用也最安全的方式,适合临时、单次、精准过滤:
- 打开全局搜索(
Ctrl+Shift+F),在搜索框下方找到「文件夹包含」或「Files to include」输入框 - 填入合法 glob 模式:
**/*.ts(所有 TS 文件)、**/*.tsx(只 TSX)、**/*.{js,jsx}(JS 和 JSX) - 多个类型用逗号分隔:
**/*.ts,**/*.tsx,注意不能有空格 - 它和
search.exclude无关,也不影响其他功能,关掉面板就自动清空
search.exclude 配置对类型过滤没用,但常被误用
很多人想“默认跳过 .log 和 .md”,于是往 search.exclude 里加规则——这只能排除,不能按类型“主动包含”。而且极易配错:
- 写成
"*.log": true→ 只排除当前目录下的 .log,不是全项目 - 写成
"**/logs"(缺.log后缀)→ 不匹配任何日志文件 - 值写成
"true"字符串 → 规则静默失效,node_modules照样出现在搜索结果里 - Windows 下写
**\node_modules→ VSCode 完全忽略,因为必须用正斜杠/
用 lang: 或 type: 前缀做语义级过滤(部分语言支持)
某些语言服务(如 TypeScript、JavaScript、Python)支持在搜索内容框里加前缀,比路径过滤更可靠:
- 搜
lang:ts useEffect→ 只在 TS/TSX 文件中找useEffect字符串 - 搜
type:javascript fetch→ 仅匹配 JS 文件里的fetch - 不依赖文件后缀,而是靠语言服务识别内容类型,所以重命名的
utils.js.txt也能命中 - 但不保证所有语言都支持;比如自定义后缀(
.web.ts)若未注册语言模式,lang:ts就无效
右键「在文件夹中搜索」比类型过滤更准的场景
当你已经知道目标文件大概在哪,且该目录下文件类型混杂(比如 src/utils 里有 .ts、.js、.test.ts),这时按类型过滤反而多余:
- 在资源管理器中右键目标文件夹 → 「在文件夹中查找」
- 输入关键词,VSCode 自动把搜索范围锁死在该路径下,连
**/src/utils/**这种 glob 都不用手写 - 比
files to include更少出错,尤其适合排查模块内逻辑、重构前确认调用点 - 注意:这个操作不会读
search.exclude,哪怕你配置了排除**/*.test.*,它也会照搜
真正容易被忽略的是:VSCode 的类型过滤本质是路径匹配,不是语法解析。哪怕你写了 **/*.ts,只要某个文件叫 index.ts.bak,它也会被包括进来——因为 glob 不关心文件是否真能被 TS 编译器处理。


















