VSCode 的 Ctrl+. 仅对光标所在可诊断 token 生效,需停在带下划线的标识符上,且依赖语言服务器正常运行;F8 仅按 Problems 面板跳转;所有语义导航均要求右下角语言模式正确并启用对应语言服务。

Ctrl+. 按下没反应,先看光标停在哪
VSCode 的 Ctrl+. 不是全局热键,它只对当前光标所在的「可诊断 token」生效。比如 consol.log() 报错,光标必须落在 consol 上——停在 .、log、空格或括号里,都触发不了修复菜单。
波浪线覆盖范围 ≠ 可触发范围:只有带下划线的标识符(变量名、函数名、模块名)才可能提供修复建议;注释、字符串、运算符、括号上按 Ctrl+. 一定没反应。
- 检查右下角语言模式是否为
TypeScript、Python等,而非Plain Text或Unknown - 确认文件已保存,未保存的临时文件常被语言服务器忽略
- 中文输入法会吞掉
.,切英文输入法再试
F8 跳不到错误,问题面板可能根本没内容
F8 不扫描代码,它只按 Problems 面板里的顺序跳。如果面板为空、被关闭或只显示 No problems have been detected,F8 就无从下手。
常见断点不是快捷键冲突,而是语言服务没起来:TS 项目缺 tsconfig.json,Python 项目没 pyproject.toml 或解释器路径未配置,都会导致诊断静默失败。
- 按
Ctrl+Shift+M强制唤出 Problems 面板,哪怕缩成窄条也要让它在那儿 - 打开开发者工具(
Ctrl+Shift+I),Console 里搜Failed to start language client或超时日志 - 终端报错如
src/index.ts:42:8可直接点击跳转,但line 42或at index.ts:42不支持
跳转失效时,别调快捷键,先查右下角语言标签
VSCode 所有导航行为(Ctrl+Click、Ctrl+P @xxx、Ctrl+Shift+O)都依赖语言服务器返回的 AST 信息。一旦右下角显示 Plain Text,所有语义级跳转就退化为纯文本匹配甚至失效。
JS/TS 项目必须有 tsconfig.json 或 jsconfig.json;Vue 单文件组件需装 Volar 并禁用 Vetur;React 函数组件若用 const Foo = () => {} 写法,大纲可能不识别,需确保 javascript.suggest.autoImports 启用。
- 新建文件未保存时,语言服务器通常不处理,先
Ctrl+S -
Ctrl+P输入@没反应?说明符号索引未就绪,不是快捷键问题 -
Ctrl+Shift+O连续按两次可进筛选模式,输@function快速过滤函数
括号跳转不准,不是 bug 是设计逻辑
editor.action.jumpToBracket 永远跳回「语法树上最近的配对括号」,不是视觉上最外层或最内层。例如 type T = { a: { b: number }[] };,光标落在最内层 } 上,它只会跳回紧邻的 {(即 b: number 前那个),不会跳到 type T = { 开头。
跳转前提极严格:光标必须严格落在 {、}、[、]、(、) 六个字符之一上;文件不能有未闭合括号;editor.matchBrackets 必须设为 always。
- 推荐绑定
Ctrl+Shift+J替代默认Ctrl+Shift+\,避免被 Logitech Options 或 macOS Spotlight 劫持 - 绑定时务必保留
when条件:editorTextFocus && !editorReadonly,否则在搜索框或终端里也会误触发 - 嵌套超 20 层时跳转可能失败,这是 AST 解析限制,非配置问题


















