ctrl+p的@、#、:前缀是符号跳转核心能力,非彩蛋;@匹配函数/类,#匹配变量或id,:跳转行号,依赖语法正确与索引完成。

Ctrl+P 的 @、#、: 前缀不是彩蛋,是符号跳转核心能力
很多人按 Ctrl+P 只当它是“快速打开文件”,输个文件名就完事——结果搜 @init 没反应,以为功能坏了。其实它依赖后台符号索引,且必须当前文件语法正确(右下角显示 JavaScript 而非 Plain Text)。
- 首次用
@前缀可能卡顿半秒:等右下角状态栏索引完成再输,别急着连按 -
@匹配函数/类定义(如@render),#匹配变量名或 HTML ID(如#header),:直接跳行(如:42) - 输错不用全删:用
Ctrl+←/Ctrl+→按词移动光标,比逐字删除快得多 - 搜不到?先右键 →
Set Syntax选对类型,或Ctrl+Shift+P输ssjs快速切到 JavaScript
Ctrl+D 和 Alt+F3 多选行为完全相反,混用必出问题
新手常把 Ctrl+D 和 Alt+F3 当成“差不多的多选”,结果批量改配置时漏改或误改。它们底层逻辑完全不同:一个是增量控制,一个是无差别爆破。
-
Ctrl+D:光标停在user_id上,按一次选第一个,再按选第二个……可跳过注释里同名字符串,适合精准修改前几处 -
Alt+F3:一按就选中全文所有user_id,不区分上下文,正则模式下也无效 - 误触
Alt+F3后别狂按Esc——残留光标会导致粘贴错位;更稳的是先按Ctrl+U(软撤销)回退光标位置 - 想只改第 1、3、5 处?必须用
Ctrl+D连按 +Ctrl+K, Ctrl+D跳过,不能靠Alt+F3配合手动删光标
Ctrl+Shift+L 不是“选多行”,是“每行末加光标”
这个快捷键被误解最多。它根本不负责选择,而是把已有选区“拆成多个独立光标”,全部落在各行末尾——用途非常具体,但用错地方反而添乱。
- 必须先选中多行(比如用
Ctrl+L连按或鼠标拖选),再按Ctrl+Shift+L才生效 - 典型场景:给 5 行末尾同时加逗号、批量删行尾空格、补分号;但
Tab只影响第一行,要用Ctrl+]才能批量缩进 - 某行结尾有空格?
Ctrl+Shift+L后光标落在空格后,删空格前建议先按End定位,否则可能误删代码 - 要“竖向拖选”,直接用
Alt+鼠标(Windows/Linux)更直觉,别硬套这个快捷键
Ctrl+/ 注释失效,90% 是语法识别错了
按了 Ctrl+/ 没反应,或者插出 // 在 HTML 里?不是快捷键坏了,是 Sublime 根本没认出当前文件类型。它的注释行为完全由语法定义驱动。
- JS 文件里加
//,HTML 里加<!-- -->,Python 里加#,规则来自当前语法定义 - 右下角显示
Plain Text却想注释?右键 →Set Syntax手动选对类型,或Ctrl+Shift+P输ssjson等快速切换 - 块注释用
Ctrl+Shift+/,但聚焦首行写说明得用Ctrl+Alt+/—— 这个组合键极少被注意到,却很实用 - 扩展名映射错误也会导致语法错:比如
.jsx文件没被识别为 JavaScript,需在Preferences → Settings里检查extensions映射
真正卡住人的,往往不是记不住快捷键,而是不知道它什么时候该起作用、什么时候会静默失败。比如 Ctrl+P 的符号索引延迟、Ctrl+Shift+L 对前置选区的强依赖、Ctrl+/ 对语法标签的零容忍——这些隐性前提不满足,快捷键就只是个摆设。











