ctrl+r仅索引当前文件中符合语法定义的符号,需确保右下角为正确语言、文件已保存、函数写法规范(如python用def、js用function),否则无法识别。

Ctrl+R(Windows/Linux)或 Cmd+R(macOS)是最快、最稳的查阅方式——它不依赖插件、不卡顿、不缓存,按完即出符号列表,就是当前文件结构的实时快照。
Ctrl+R 为什么有时不显示函数或方法?
常见现象:只列出类名,def 行完全不出现;JavaScript 文件里箭头函数缺失;Python 中 async def 不识别。
根本原因不是功能坏了,而是 Sublime 没把当前光标位置识别为“可索引的符号”。验证方法:
- 按
Ctrl+Shift+P→ 输入Developer: Show Scope Name,把光标放在一个函数名上 - 如果返回的作用域不含
entity.name.function或entity.name.class,说明语法层未声明 symbol list 支持
排查步骤:
- 右下角语言标识是否为
Plain text?右键 →Set Syntax→ 明确选Python、JavaScript Next等活跃语法包 - 文件后缀是否正确?比如
main.py被保存为main.txt,语法识别会失效 - 当前语法包是否老旧?例如官方
JavaScript包已停更,换成JavaScript Enhancements或JS Custom更可靠
需要侧边栏树形结构,该选 Outline 还是 Symbol List?
Outline 和 Symbol List 都能提供常驻大纲,但行为差异明显:
-
Outline:- 默认不自动刷新,改完代码需再按一次快捷键(如
ctrl+alt+o)才更新 - 依赖 LSP 或语言服务,对 Python/JS 支持好,但 Bash、TOML、自定义 DSL 常漏识别
- 不解析父类方法,
class Child(Parent)下不会展开Parent的def
- 默认不自动刷新,改完代码需再按一次快捷键(如
-
Symbol List:- 纯 Python 实现,无外部依赖,启用后只要打开文件就自动加载
- 必须在用户配置中显式写入
"show_in_sidebar": true才显示在侧边栏 - 宽度受主题限制,设
"sidebar_width": 280后仍被截断?说明主题 UI 布局已固定,别硬调
两者都不跨文件聚合,仅作用于当前活动标签页。
Ctrl+P + @ 是项目级符号搜索,不是大纲替代品
这个组合(Ctrl+P 后输入 @ 再输函数名)能跨文件跳转,但它返回的是扁平列表,没有层级、不体现嵌套、不展示 class 下的 def 关系。
它适合:
- 快速定位
utils.py里的parse_json,哪怕当前在main.py - 查找整个项目中所有叫
<strong>init</strong>的方法
它不适合:
- 理解单个文件内
class A→def method1→def _helper的嵌套结构 - 判断某个方法是否被
@property或@staticmethod修饰(这些修饰符不会出现在符号列表中)
真正容易被忽略的点是:语言支持从来不是“全有或全无”,而是逐语法作用域生效。同一个 Python 文件,def 能识别,但 if 块或 with 上下文管理器永远不会进大纲——因为它们不是 symbol,而是 control flow。想靠大纲看清逻辑流?得靠折叠(Ctrl+Shift+[)和书签(F12),而不是符号列表。











