Ctrl+D 是增量选词,Alt+F3 是全量匹配;Ctrl+Shift+L 为行尾光标分发器,需先有选区;Ctrl+P 搜索依赖语法识别与索引状态;Ctrl+M 跳转括号,Ctrl+Shift+M 才选中含嵌套内容。

Ctrl+D 选词 vs Alt+F3 全量匹配:别混用,否则改崩配置
很多人一上来就狂按 Alt+F3,结果把注释里、字符串里、JSON key 里的同名字段全选了,一删全废。这不是功能缺陷,是行为设计差异:Ctrl+D 是增量控制,Alt+F3 是无上下文爆破。
实际用法建议:
- 想改前 3 处
user_id,但跳过第 4 行注释里的同名字符串?用Ctrl+D连按三次,再手动跳过第 4 次 - 确认全文所有
console.log都要替换成debugger?先Ctrl+F输入关键词,再按Alt+F3,比盲目爆破更可控 - 误触
Alt+F3后光标乱飞?别连按Esc,先按Ctrl+U软撤销光标操作,再重新来 -
Ctrl+D在正则查找模式下仍可逐个加选;Alt+F3对正则完全无效——这点常被忽略
Ctrl+Shift+L 不是“多行选择”,而是“行尾光标分发器”
这个快捷键最常被误解。它不生成选区,只把已有选区的每行末尾打上独立光标。所以必须先有选区(比如用 Ctrl+L 连按选中几行,或鼠标拖选),再按 Ctrl+Shift+L 才生效。
典型场景和坑点:
- 给 5 行末尾统一加逗号?选中这 5 行 →
Ctrl+Shift+L→ 输入, - 某行末尾有空格?光标会落在空格后,直接输内容可能覆盖空格而非追加——建议先按
End确认光标位置 - 想批量缩进?别用
Tab(只作用于第一行),用Ctrl+]批量向右缩进所有光标行 - 配合查找替换更灵活:查
$(行尾锚点)→ 替换为,,就能给每行末尾加逗号
Ctrl+P 模糊搜索不是文件对话框,右下角语法标签决定它能不能跳函数
Ctrl+P 启动的是 Sublime 自带的符号/文件搜索面板,响应快、支持前缀语法。但它依赖后台索引和当前文件的语法识别——如果右下角显示的是 Plain Text,输 @init 就永远找不到 JS 的 init 函数。
实操要点:
- 搜不到函数?先看右下角语法标签,用
Ctrl+Shift+P输入ssjs切换为JavaScript - 输
#header匹配 HTML 中的id="header"或 JS 变量header,但前提是文件已被正确识别为对应语法 - 输
:42直接跳第 42 行,输@render跳到render方法定义处(首次可能延迟半秒,等索引完成) - 输错不用全删,用
Ctrl+←/Ctrl+→按词移动光标修正,比退格更准
Ctrl+M 和 Ctrl+Shift+M:括号跳转与选中,嵌套场景下必须配合用
Ctrl+M 只跳转到匹配括号位置,Ctrl+Shift+M 才选中括号内全部内容(含嵌套)。单独用 Ctrl+M 往往只是第一步,真正删函数体、改参数列表、重写块逻辑,得靠后者。
常见组合用法:
- 光标在
{上按Ctrl+M跳到对应},再按Ctrl+Shift+M选中整个函数体 - 嵌套 JSON 或 JSX 时,
Ctrl+Shift+M会优先选最内层,连续按可逐层向外扩展选区 - 想删掉整个
if (cond) { ... }块?光标停在if后的(上 →Ctrl+Shift+M→Ctrl+Shift+K删除整块 - 选中后粘贴新内容前,建议先按
Enter换行再粘贴,避免格式错位——多光标状态下Backspace或Delete会同步删所有光标位置
Ctrl+P 搜新函数却搜不到?等右下角状态栏索引进度走完再试。

















