ctrl+shift+p(macos为cmd+shift+p)是统一命令入口,输入@查函数/类、#搜标记段落、:加数字跳转行号;ctrl+p支持@和#但不支持:;输错字符或caps lock开启会导致面板无响应,需切英文输入法重试。

Ctrl+Shift+P 里输 @、#、: 才是真速查
别再靠死记硬背快捷键,Ctrl+Shift+P(macOS 是 Cmd+Shift+P)输这几个符号,比翻文档快得多:
-
@:列出当前文件所有函数、类、方法名(前提是语言语法支持,比如 Python/JS 有定义识别;纯文本或未启用 LSP 的 TS 文件可能只显示简单声明) -
#:搜带标记的段落,比如// TODO、// FIXME、#region(需开启preview_on_click才能直接跳转) -
::后接数字直接跳到指定行,比如:42比Ctrl+G再敲42少按一次 Enter
注意:Ctrl+P 也能输 @ 和 #,但不支持 : 行号跳转;Ctrl+Shift+P 是唯一统一入口。输错字符或 Caps Lock 开着,整个面板就无响应——先切英文输入法再试。
Ctrl+D 和 Alt+F3 不是替代关系,是不同节奏
很多人以为 Alt+F3 就是“更快的 Ctrl+D”,其实它们触发逻辑完全不同:
-
Ctrl+D是渐进式:光标停在user_id上,第一次按选这个词,第二次按选下一个user_id,第三次继续……适合要跳过某些匹配项或逐个确认的场景 -
Alt+F3是全量式:直接高亮当前文件中所有完全匹配的词,不管光标在哪、是否双击选中——但要求当前光标所在位置必须构成一个完整词(停在user_id中间下划线处,它会匹配_而不是整个变量) - 想跳过当前已选中的项?按
Ctrl+K再按Ctrl+D,光标直接落到下一个匹配处
真正卡住人的不是键位本身,而是光标状态:按错一个 Esc 或方向键,所有多光标瞬间消失,得重来。
Ctrl+Shift+L 为什么有时只出一个光标?
这个操作不看“你选了几行”,只认选区里有没有换行符 \n:
- 鼠标拖选没拉到行尾(比如停在中间字符),选区不含
\n,Ctrl+Shift+L就只生成一个光标 - 正确做法:先用
Ctrl+L连按选中多行(每按一次加一行),确保每行都被完整选中;或用Shift+↓框选后,再按一次→或End把光标推到行尾 - Mac 用户注意:
Cmd+Shift+L行为一致,但容易误按成Cmd+L(只选单行)
列编辑对齐问题也常源于此——如果选区没包含换行符,后续矩形拖拽(Alt+鼠标)根本不会生效。
自定义快捷键失效,90% 是 JSON 格式或 context 写错了
往 Preferences > Key Bindings – User 里加规则,看着简单,实际最容易栽在这几处:
- JSON 必须严格:缺逗号、多逗号、用单引号代替双引号,Sublime 都不报错,但整段规则静默失效
- 没写
context字段时,快捷键全局生效;但像ctrl+shift+k(删行)在输入框内无效,就是因为它的默认context限定了"key": "setting.is_widget", "operator": "equal", "operand": false - 命令名拼错不会提醒:比如写成
toggle_sidebar(少下划线)或toggle_side_barr(多字母),按键毫无反应 - Linux/macOS/Windows 的键位定义分开放在不同文件里(如
Default (Linux).sublime-keymap),跨系统抄配置大概率失效
最稳妥的验证方式:打开 Preferences > Key Bindings – Default,用 Ctrl+F 搜目标命令名(比如 toggle_side_bar),确认它的写法和 platform 条件,再照搬过去。











