Ctrl+P 模糊搜索需确保右下角语法标签正确,@匹配函数名、#匹配id/class/变量名、:42仅限当前文件;Ctrl+D增量选词防误改,Alt+F3全量爆破易出错;Ctrl+Shift+L拆行尾光标非多行选择;Ctrl+M/Ctrl+Shift+M跳转/选中括号内容,依赖括号配对。

Ctrl+P 是你每天该按的第一下,不是为了打开文件对话框,而是启动模糊搜索——输 user 就能命中 user.js、src/api/user.ts、甚至 config/user.json。它不依赖完整路径,也不需要记住文件名全称,只要前缀匹配就出结果。右下角语法标签必须是正确语言(比如 JavaScript 而非 Plain Text),否则 @init 或 #header 这类符号跳转会失效。
常见错误现象:Ctrl+P 按了没反应,或只显示“no results”;输 @fetch 却跳不到函数定义;:42 跳行失败。
- 确认右下角状态栏显示的是目标语言(如
JavaScript),不是Plain Text;可用Ctrl+Shift+P输入Set Syntax: JavaScript快速切换 -
@后跟的是函数/方法名,不是变量名;#匹配的是 HTML id、CSS class 或 JS 变量名(取决于当前语法) -
:42仅对当前已打开文件生效,不能跨文件跳行 - 输错时别狂按 Backspace——用
Ctrl+←/Ctrl+→按词移动光标,删得更准
多光标不是炫技,是防手抖的关键工具
Ctrl+D 和 Alt+F3 看似都能选相同词,但行为完全不同:Ctrl+D 是增量式,适合跳过注释里同名字符串、避开正则中的字面量;Alt+F3 是全量爆破,一按就选全文所有匹配项,不管上下文。
典型误用场景:在 JSON 文件里想改几个 "name" 字段,却误按 Alt+F3,结果把 "username"、"fullname" 全一起改了;或者在正则替换模式下,Alt+F3 根本不响应。
- 想只改前 3 处?用
Ctrl+D连按三次,再输入新值 - 想跳过某处?按
Ctrl+K,Ctrl+D(注意是两步)跳过当前匹配 - 误触
Alt+F3后光标乱飞?别连按 Esc,先按Ctrl+U软撤销光标操作 -
Ctrl+D在查找面板开启正则后仍可逐个加选;Alt+F3对正则完全无效
Ctrl+Shift+L 不是“选多行”,是“拆行尾光标”
这个快捷键常被误解为多行选择命令,其实它只做一件事:把已有选区(必须是多行)拆成多个独立光标,全部落在各行末尾。它不选内容,只放光标。
典型用途:给 5 行末尾统一加逗号、批量删行尾空格、补分号;但若某行末尾有空格,光标会落在空格之后,直接按 Delete 就可能删掉代码本身。
- 必须先手动选中多行(比如用
Ctrl+L连按,或鼠标拖选),再按Ctrl+Shift+L - 想删行尾空格?先按
End定位到行尾可视字符后,再删;否则光标可能停在不可见空格上 - 拆完光标后统一缩进?别用
Tab(只影响第一行),用Ctrl+]批量向右缩进 - 配合查找替换更灵活:查
$(行尾锚点),替换为,,就能给每行末尾加逗号
括号和缩进跳转,比手敲快十倍
Ctrl+M 和 Ctrl+Shift+M 是处理嵌套结构的刚需:Ctrl+M 在左右括号间跳转,Ctrl+Shift+M 直接选中括号内全部内容(包括嵌套)。它们不依赖语法高亮,但依赖括号配对识别——如果代码里有未闭合的括号,跳转会错位。
常见问题:光标停在 { 上按 Ctrl+M 却跳到错误位置;Ctrl+Shift+M 选中的范围比预期小;缩进对齐混乱时 Ctrl+Shift+J 失效。
-
Ctrl+Shift+M重复按可逐层向外扩展选区(比如先选函数体,再选整个函数声明) -
Ctrl+Shift+J选同缩进块,只对空格/Tab 缩进有效,混合缩进(空格+Tab)会导致识别失败 -
Ctrl+L选当前行,再按一次选下一行——适合连续编辑相邻几行,比鼠标拖更稳 - 删整行用
Ctrl+Shift+K,不是Ctrl+K, Ctrl+K(后者只删到行尾)

















