VSCode搜索范围由Find in Folder、files to include和工作区决定,search.exclude仅过滤结果不控制范围;跨模块引用需扩展files to include或用符号定位。

只在 src/features/user 目录下搜索
直接右键资源管理器里的 src/features/user 文件夹 → 选择 Find in Folder,或选中该文件夹后按 Alt + Shift + F(Windows/Linux)/Option + Shift + F(macOS)。VSCode 会自动把搜索范围锁定到该路径及其子目录,node_modules、tests、dist 全部被自然排除,不依赖任何配置。
用 files to include 精确控制多个模块路径
打开 Ctrl+Shift+F 搜索面板,在底部 files to include 输入框里填:
-
src/features/auth/**—— 只搜 auth 模块所有文件 -
src/features/profile/**,src/features/settings/**—— 多个模块用逗号分隔 -
**/user-service/**—— 匹配任意深度下的 user-service 目录(适合 monorepo)
注意:files to include 是白名单机制,填了就只查这些路径,其余一律忽略;它不关心 search.exclude 配置,也不受 .gitignore 影响。
为什么加了 search.exclude 还是搜到其他模块的文件
常见误判点:以为 "**/node_modules": true 这类规则能“限制搜索范围”,其实它只是排除干扰项,不是限定目标。真正决定“查哪里”的只有三件事:
- 是否用了 Find in Folder
- 是否在
files to include填了路径 - 是否打开了完整文件夹工作区(
File → Open Folder…),而不是单个文件
如果这三项都没做,search.exclude 再全也只会让结果“少一点噪音”,不会把搜索收束到某个功能模块里。
跨模块引用查找时容易漏掉的边界情况
比如想查 useUserPermissions 在哪些模块里被调用,但只在 src/features/user 下搜不到——很可能因为:
- 调用方在
src/features/admin或src/pages/dashboard,但你没把它们加进files to include - 函数被 re-export 到
src/lib/hooks/index.ts,而该路径不在你限定的范围内 - 项目用了 pnpm workspace,实际引用路径是
packages/core/src/hooks,但**/user/**根本匹配不到
这时候别硬调 search.exclude,先确认符号定义位置,再反向扩大 files to include 范围,或者直接用 @function:useUserPermissions(需语言服务器支持)定位调用点。


















