Ctrl+P通过内存索引实现模糊匹配文件,@用于符号跳转,#用于文本搜索;需添加文件夹到项目、设置正确语法、保存文件才能生效。

直接按 Ctrl+P(Win/Linux)或 Cmd+P(Mac)就能秒开文件,不用点侧边栏、不依赖路径完整
Sublime 的文件跳转不是“搜索”,而是基于内存索引的模糊匹配,输入任意片段即可命中目标文件。它不关心你漏掉多少字符,只认顺序——比如 src/utils/date/formatDate.js,输 dfmtjs 或 u/da/fd 都能立刻出现。
- 输
pb可能匹配PrimaryButton.vue;输s/c/u能筛出src/components/utils/下所有文件 - 驼峰命名自动拆解:
USC会匹配UserSettingsController,不用记大小写 - 别输全路径——
api/handlers比src/server/api/handlers/index.ts更快更稳 - 如果输
.env找不到,检查项目设置里有没有"folder_exclude_patterns": [".*"],这个正则会把所有点开头文件踢出索引
为什么输对了名字却没反应?大概率是项目没“真正加载”
双击打开单个文件,Sublime 默认不识别项目结构;Ctrl+P 的搜索范围仅限于“已添加到项目中的文件夹”。拖拽整个文件夹进来 ≠ 添加进项目,必须显式执行 Project → Add Folder to Project…。
- 未添加文件夹时:
Ctrl+P只搜当前打开的几个标签页,node_modules等子目录天然不可见 - 添加后仍搜不到?确认
"file_exclude_patterns"没误杀,比如"*.log"可能连带过滤了app.log.js - 刚添加大项目时首次
Ctrl+P可能卡顿 2–5 秒——这是后台在构建符号索引,忍一下,之后就毫秒响应
@ 和 # 不是装饰符,是不同维度的定位指令
@ 是符号跳转,# 是文本搜索,两者语义完全不同,混用会失效。例如 main.css#.btn 永远找不到选择器,因为 .btn 不是普通文本,得用 main.css@.btn。
-
@initApp:在当前项目所有 JS 文件中找function initApp()或const initApp = -
utils.js@formatDate:先打开utils.js,再跳到formatDate定义处 -
settings.json#api_key:打开settings.json,高亮所有含api_key的行(大小写不敏感) -
index.html:120#TODO:打开index.html第 120 行,并在附近标出所有TODO注释
跨文件跳函数总失败?先看右下角语法名是不是 Plain Text
@ 跳转依赖语言语法识别。如果右下角显示的是 Plain Text,那 Sublime 根本不会解析函数、类等结构,输什么 @xxx 都白搭。
- 点右下角语法名 → 手动选
JavaScript、Python或对应语言 - TypeScript/JSX 项目建议装
JS Custom插件,并开启enable_auto_symbol_indexing - Go/Rust 等语言需额外工具链支持(如
guru),否则@基本无效 - 未保存的临时文件不参与索引——改完记得
Ctrl+S,不然@找不到你刚写的save_user









