Ctrl+R/Cmd+R是最快最稳的函数类提取方式,直接读取语法高亮解析结果,无需插件、不卡顿、不依赖索引,支持多语言且实时过滤;找不到时需检查文件是否保存、语法是否正确设置、函数名作用域是否有效。

Ctrl+R(Windows/Linux)或 Cmd+R(macOS)是最快、最稳的提取方式,无需插件、不卡顿、不依赖项目索引——只要文件已保存且语法识别正确,秒出函数/类列表。
Ctrl+R 为什么比插件更可靠?
它直接读取当前文件的语法高亮解析结果(即 symbol_list 规则),不是靠正则硬扫,也不是调用外部进程。这意味着:
- 不会因注释、空行或缩进异常漏掉
def或function行 - 不生成临时文件、不拖慢启动、不占用后台资源
- 对 Python、JavaScript、Java、Go 等主流语言开箱即用,只要语法包启用
symbolList - 输入关键词实时过滤,回车才跳转,纯浏览不打断当前光标位置
Ctrl+R 找不到函数?先查这三件事
常见现象:按了没反应、只列出类名、箭头函数不出现——问题几乎都出在“识别链”断点上:
- 文件未保存:
Ctrl+R不索引未保存内容,务必先Ctrl+S - 右下角显示
Plain text:必须手动右键 →Set Syntax→ 选对应语言(如Python) - 光标所在函数名未被标记为
entity.name.function:按Ctrl+Shift+P→ 输入Developer: Show Scope Name,把光标放在函数名上验证;若不含该作用域,说明语法包过时或不完整,建议重装官方Python或JavaScript Next包
Outline 插件适合什么场景?
当你需要常驻侧边栏、可折叠层级、带缩进结构的树形大纲时,Outline 是目前最活跃维护的替代方案(CodeMap 已多年未更新):
- 安装后默认无快捷键,需在
Preferences → Key Bindings中手动添加:[{"keys": ["ctrl+alt+o"], "command": "outline"}] - 它只作用于当前活动文件,不跨文件聚合;修改代码后需重新触发(再按一次快捷键)才能刷新
- 对 Python/JS 支持较好,但 Bash、Rust、TypeScript 等依赖社区语法包是否定义了
foldingStartMarker,否则可能漏识别if块或for循环 - 别把它和右侧
minimap混淆:minimap是纯视觉滚动缩略图,不解析逻辑结构,也不能点击跳转
真正复杂的地方在于:同一份代码,在 Python 文件里 Ctrl+R 能完整列出所有 def 和 class,换到一个自定义 DSL 脚本里可能一个符号都不显示——这不是操作问题,而是语法定义本身没声明 symbol_list 规则。这时候插件再强也补不了底层缺失。

















