全局搜索带特定注解的文件需在ctrl+shift+f中输入注解并启用全词匹配或正则\b@todo\b;限制ts文件用/.ts,收窄路径填src/api///.ts;排除node_modules必须用/node_modules//。

怎么用全局搜索找带特定注解的文件
直接在 Ctrl + Shift + F(Mac 为 Cmd + Shift + F)打开的搜索面板里输入注解内容,比如 @deprecated 或 // TODO,就能定位所有含该注解的文件。但单纯输字符串容易误中注释块、字符串字面量或变量名,必须加过滤和限定。
为什么搜 @todo 却匹配到 todoList
因为默认是子串匹配,没加边界控制。解决方法只有两个:
- 启用「全词匹配」(点击搜索框右侧的
ab图标),让@todo不再匹配todoList; - 改用正则:开启
.*模式后输入^.*@todo.*$或更稳妥的\b@todo\b,确保只匹配独立注解标记。
注意:\b 在 VS Code 正则中表示单词边界,对 @ 这类符号也有效;而 ^ 和 $ 要配合「每行匹配」逻辑,实际更推荐前者。
只想搜 TypeScript 文件里的 JSDoc 注解
在搜索面板底部的「文件中包括」输入框填 **/*.ts,就能把结果限制在 TS 文件内。如果项目结构复杂,还想进一步收窄到 src/api 下:
- 填
src/api/**/*.ts—— 只搜该路径下 TS 文件; - 若同时要排除测试文件,「文件中排除」填
**/*.spec.ts,**/*.test.ts; - 别写
src/api/*.ts,它不匹配子目录,漏掉src/api/v2/xxx.ts。
搜 @internal 却扫到了 node_modules
这是最常被忽略的坑:VS Code 默认全局扫描,node_modules 里大量第三方库自带注解,结果刷屏。必须主动排除:
- 「文件中排除」填
**/node_modules/**(注意开头双星号和结尾双斜杠); - 错写成
node_modules或node_modules/**都无效,VS Code 当作文件名字面量处理; - 如果项目有 monorepo 结构,还可能有
packages/*/node_modules,**/node_modules/**仍能覆盖。
真正起效的永远是带 **/ 前缀的 glob 模式,路径分隔符必须是 /,Windows 用户别手滑打成 \。











