Ctrl+Shift+L后需按End键对齐行尾再输入符号;多光标配合正则替换可结构化改写;join_lines须用连续选区而非多光标;命令面板是组合操作的可靠起点。

Ctrl+Shift+L 之后光标位置不对,补字符总出错
这不是插件问题,是 Ctrl+Shift+L 的行为逻辑被误解了:它只把已有选区“拆成光标”,但光标落点取决于当前行末是否有空格或制表符。
- 如果某行结尾有空格,
Ctrl+Shift+L后光标会停在空格之后——你直接输入;,就变成foo ;而不是foo; - 正确做法:执行
Ctrl+Shift+L后,先统一按End键,让所有光标真正落到行尾(跳过末尾空白) - 再批量输入符号(如
;、,、+)或缩进(Ctrl+]),才不会引入多余空格
多光标 + 正则替换 = 批量结构化改写
单纯多光标只能改相同位置的文本,但配合正则替换,就能做带逻辑的批量重构。比如把 JSON 数组里每个对象的 id 字段提取为独立变量:
- 用
Ctrl+D或Ctrl+Click选中所有"id":后的值(含引号) - 按
Ctrl+H打开替换面板,开启正则模式,查找"([^"]+)",替换为id_$1 - 注意:此时多光标选区会被自动转为多个独立匹配项,替换只作用于每个光标所在位置的匹配内容
- 若没开正则,
$1不生效;若没选中任何内容就开替换,会全局替换而非仅限光标处
join_lines 和多行编辑不能混用
Ctrl+J(即 join_lines)和多光标编辑本质冲突——前者依赖连续换行符构成的“物理行选区”,后者基于离散光标点。
- 用
Ctrl+Click打出多个光标再按Ctrl+J,结果是每个光标单独拼下一行,完全错乱 - 想拼接多行,必须用鼠标拖选或
Shift+↓拉出包含换行符的连续选区(最后一行要多按一次 ↓,确保光标落在下一行开头) - 拼接前务必清理:执行
Ctrl+Shift+P→Trim Trailing White Space,再用正则^\s*$\n干掉伪空行 - 粘贴自网页/Excel 的内容常无真实
\n,只有软折行,Ctrl+J对其无效——得先Ctrl+A→Ctrl+Shift+P→Convert Line Endings: Unix
命令面板(Ctrl+Shift+P)才是真正的联动中枢
几乎所有组合技的起点都不是快捷键堆叠,而是通过命令面板调用精确动作,再叠加多光标或选区。
- 比如“给每行加括号”:先
Ctrl+L连按选中多行 →Ctrl+Shift+L拆光标 →Ctrl+Shift+P输入Insert at Beginning of Line,输入(;再同样调用Insert at End of Line,输入) - 比手动
Home/End更可靠,尤其当行首有缩进时,Insert at Beginning of Line会精准落在缩进后,不破坏格式 - 插件如
AlignTab或TrailingSpaces的功能也必须通过命令面板触发,无法用纯快捷键链式调用
End 键、误用多光标启动 join_lines、跳过行尾清理,都会让结果偏离预期。

















