ctrl+d选中相同字符后必须按ctrl+shift+l拆光标才能批量编辑:先将光标置于目标字符侧,逐次ctrl+d选中全部,再ctrl+shift+l使光标落于字符左右两侧,方可分别插入前后内容。

Ctrl+D 逐次选中相同字符,再按 Ctrl+Shift+L 拆光标
想在某个字符(比如 =、:、->)前后批量插入内容,核心不是“定位字符”,而是“把字符本身变成选区”。Ctrl+D(Windows/Linux)或 Cmd+D(macOS)是唯一可靠起点:它会从当前光标位置向右匹配第一个完整单词/符号,选中后立刻激活下一个匹配项。
操作节奏必须严格:
- 先把光标放在第一个目标字符(如第一个
=)的左侧或右侧,不要直接点在字符上 - 按一次
Ctrl+D,该字符被选中;再按,下一个同字符被选中;连续按直到所有目标都被高亮 - 此时所有选区都“包裹”着那个字符,但光标还在选区外——必须立刻按
Ctrl+Shift+L(Windows/Linux)或Cmd+Shift+L(macOS),把每个选区拆成独立光标 - 这时光标落在字符左侧(若原光标在左)或右侧(若原光标在右),可直接输入前缀或后缀
常见错误:只用 Ctrl+D 选中一堆 = 就开始打字,结果只改了第一个;或者没拆光标就按 ←/→,导致光标乱跳。
在 = 前后分别插入内容,要分两步走
同一个字符前后都要加东西(比如把 a = b 改成 const a = b;),不能一步到位。因为 Ctrl+D 选中的是整个 =,光标只能落在它一侧。
正确做法是分两次操作:
- 先让光标停在所有
=的左侧:选中全部=后按Ctrl+Shift+L,再按 ←(左方向键),所有光标移到=左边,输入const - 再重新选中所有
=(Ctrl+D重来),按Ctrl+Shift+L,再按 →(右方向键),光标跳到=右边,输入;
注意:如果 = 前后有空格,←/→ 可能停在空格上而非紧贴字符。此时可用 Ctrl+← 跳词,或连按两次 → 确保越过空白。
正则替换更稳,但 $0 必须用对
当目标字符位置不规律(比如有的 = 前有空格、有的没有),Ctrl+D 容易漏匹配,这时正则替换反而更准。打开 Ctrl+H,启用正则(点 .* 按钮),关键在怎么写查找和替换。
想在 = 前加 const :
- 查找:
(\s*)=—— 匹配等号及其前面可选空白 - 替换:
$1const =——$1保留原有空白,再插内容
想在 = 后加 ;:
- 查找:
=(\s*)—— 匹配等号及其后面可选空白 - 替换:
=$1;——$1保留原有空白,分号紧跟其后
别用 ^.*=.*$ 这类模糊匹配:它会整行替换,破坏结构;也别漏掉括号,否则 $1 无法捕获。
列选择(Alt+拖拽)只适合对齐文本,别硬套
列选择(Alt+鼠标拖拽)看起来能“框住所有 = 右侧”,但它依赖视觉列对齐。只要某行缩进不同、空格数量不一,拖出来的矩形就会错位,结果是有些行插在中间、有些插在空格里。
它只适用于真正等宽排列的场景,比如 CSV 数据、固定宽度日志、或已用 Align Indent 统一缩进的代码块。日常代码中混用 Tab 和空格时,列选择基本不可靠。
真正容易被忽略的点:多光标操作中,Ctrl+Shift+L 后光标默认在字符“之后”,不是“之前”;而正则里 $0 表示整个匹配内容,不是原始行——写错一个括号,就全替错了。











