Ctrl+D逐次选中参数名需注意match_whole_word和光标位置;Ctrl+K+D可跳过当前项;改子串需关闭全词匹配;Ctrl+Shift+L适合行末加前缀;Alt+Shift列选择要求等宽字体和禁用换行;Esc是多光标安全退出键。

Ctrl+D 逐次选中参数名,但要注意 match_whole_word 和光标位置
想改 foo(a, b, c) → foo(xxx_a, xxx_b, xxx_c),最常用的是 Ctrl+D(Windows/Linux)或 Cmd+D(macOS),但它默认只匹配「完整单词」且严格区分大小写。如果光标停在 a 上双击选中,再按 Ctrl+D,它会找下一个完全相同的 a,但若中间有 abc 或注释里的 a,就可能跳过或误中。
关键控制点:
-
Ctrl+K+D可跳过当前高亮项(比如跳过某行注释里的同名变量) - 想匹配子串(如从
user_id中只改id),先取消选区(Esc),把光标放在id内部,再关掉match_whole_word(通过Ctrl+H→ 点击左下角 Aa 图标) - 若参数名含下划线或数字(如
data_1),Ctrl+D默认仍按单词边界切分,不会命中data_2—— 此时更适合用正则替换或列选择
Ctrl+Shift+L 拆行后加前缀,适合统一补参数修饰符
当所有函数调用都在独立行、且参数结构一致(如每行一个 bar(x, y)),Ctrl+Shift+L 是最快加前缀的方式:先选中全部目标行(推荐用 Ctrl+L 连续多行选中,确保含换行符),再按 Ctrl+Shift+L,所有光标落在行末;按 Home 或 Ctrl+← 移到括号前,输入 xxx_ 即可批量前置。
但注意:
- 如果函数写在同一行多个(如
foo(a); bar(b);),Ctrl+Shift+L会失效——它只按换行符切片,不识别语法结构 - 光标落在缩进后?说明选区开头带空格,导致光标偏移;建议先运行
Align Indent(命令面板输入)统一缩进 - 加完前缀后想删括号内第一个逗号后的空格?别直接
Delete,容易错删——用Ctrl+Shift+→扩展选区到空格再删
Alt+Shift+拖拽列选择,精准控制参数起始列
当参数对齐(如日志解析函数 parse("2026-09-21", "info", 404)),用列选择比 Ctrl+D 更稳:按住 Alt+Shift(Win/Linux)或 Option+Shift(macOS),垂直拖动鼠标框出所有参数值所在列(比如第 15–25 列)。松手后即生成矩形选区,输入直接覆盖该区域。
这个操作成败取决于:
- 字体必须是等宽(如
Consolas、Fira Code),否则列会漂移 - 不能开启
soft_wrap(View → Word Wrap),否则软换行会破坏列定位 - 某行参数太短?光标自动停在该行末尾,不会“悬空”,但需手动检查是否漏改
- 混合使用空格和 Tab 缩进?列选择极易错位,先执行
Convert Indent to Spaces再操作
Esc 是唯一可靠的“刹车键”,多光标状态下别乱按方向键
多光标不是模式,是实时叠加的插入点集合。一旦光标位置不对(比如部分落在字符串里、部分在注释中),输入就会同步污染多处。最常被忽略的风险是:Enter 会在每个光标处插入新行,Backspace 可能删掉不同位置的字符,造成语法断裂。
安全习惯:
- 每次开始前确认当前选区是否干净:按
Esc清空所有额外光标,只剩主光标 - 修改前先用
Ctrl+F搜\b参数名\b验证匹配范围,避免命中字符串字面量 - 不确定是否全量替换?别用
Alt+F3,改用Ctrl+H→ 勾选In Selection,先手动圈出要改的几行 -
drag_text必须设为false,否则Ctrl+Click会拖动文本而非加光标——这是很多用户点了没反应的根本原因











