Ctrl+Shift+O输入@function无反应,因符号列表为空或语言服务未识别函数声明;常见原因包括箭头函数赋值、文件后缀不被支持、语言模式为Plain Text、语法错误导致AST中断。

Ctrl+Shift+O 里输 @function 为什么没反应
当前文件符号列表为空,或语言服务没识别出函数声明。VS Code 的 @function 不是正则,也不是模糊匹配,它只显示被语言服务器标记为 function 类型的符号。
常见原因包括:
- 用了箭头函数赋值:
const getUser = () => {...}→ 这会被识别为变量,不是函数声明,@function不会列出 - 文件后缀不被语言扩展支持(比如
.jsx文件但没装 ESLint 或 TypeScript 插件) - 右下角语言模式显示为
Plain Text,说明 VS Code 根本没启用语法解析 - 文件有严重语法错误(如漏括号、未闭合字符串),导致 AST 构建中断,符号树无法生成
Ctrl+T 搜 useState 却跳出一堆 useXXX,怎么精准命中 Hook
Ctrl+T(工作区符号搜索)不支持正则,所有 ^use、use[A-Z] 都会被当普通字符处理,匹配失败是必然的。
真正能筛出 React Hook 的方式只有两种:
- 用全局搜索:
Ctrl+Shift+F→ 输入function\s+use\w+\s*\(\)→ 开启.*开关 → 再点↵(匹配换行符)确保捕获多行定义 - 在已打开的
.ts或.tsx文件中按Ctrl+Shift+O→ 输入use→ 手动扫一眼列表,靠驼峰匹配(usE→useState)快速定位
别指望 Ctrl+T 支持命名约定过滤——它只算字符串相似度,不是语义引擎。
F3 跳转结果时,光标突然卡在终端或侧边栏,怎么办
F3 是唯一不依赖焦点的跳转快捷键,但它有个硬性前提:上一次搜索状态必须还“活着”。一旦你执行了新搜索、切了窗口、或关闭了所有含结果的编辑器标签,F3 就会静默失效。
更隐蔽的问题是:某些扩展(尤其是终端增强类)会劫持 F3 键位。验证方法是:
- 关闭所有终端面板,再试
F3 - 打开命令面板
Ctrl+Shift+P→ 输入Preferences: Open Keyboard Shortcuts (JSON)→ 检查是否有其他扩展覆盖了editor.action.nextMatchFindAction - 临时禁用终端类扩展(如
Terminal Tabs),看是否恢复
搜索结果太多,想只看 src/api 下的调用,但 files to include 没反应
在 Ctrl+Shift+F 面板里,files to include 输入框必须显式写路径模式,且不能只写 src/api——VS Code 默认把它当文件名匹配,不是目录前缀。
正确写法是:
-
src/api/**/*.ts(只搜 TypeScript 文件) -
**/src/api/**(跨任意层级匹配 src/api 目录下的所有文件) - 如果项目用 Vite 或 Webpack 别名,
@/api/**不生效——别名是运行时机制,搜索不解析 tsconfig.json 的paths
另外,search.exclude 里若已配了 "**/node_modules": true,但没加 "**/dist": true,构建产物里的重复代码仍会污染结果,得一并排除。
复杂点在于:符号搜索(Ctrl+T / Ctrl+Shift+O)和文本搜索(Ctrl+Shift+F)走的是两套完全独立的索引路径,一个靠语言服务器,一个靠文件扫描。混用过滤逻辑,只会让结果越来越不可控。











