vscode垂直列选必须用矩形区域模式,alt/option+拖拽失效常因editor.multicursormodifier被设为"ctrlcmd"或x11转发、触控板手势干扰;推荐shift+alt+↑/↓键盘操作更精准;列选后编辑错位多因prettier/eslint自动格式化,需临时禁用formatonsave或加注释;列选适用于强位置规律操作,匹配替换则用ctrl+shift+l更安全。

VSCode 里垂直选定多行光标,不是靠 Ctrl+Click 或 Ctrl+Shift+L —— 那是普通多光标;垂直列选必须走矩形区域模式,否则永远选不齐。
Alt/Option + 鼠标拖拽没反应?先查 editor.multiCursorModifier
默认行为在 Windows/Linux 是 Alt + 左键拖拽,macOS 是 Option + 拖拽。但很多人拖不动,根本原因不是键盘或鼠标问题,而是设置被改了:
-
editor.multiCursorModifier被设成"ctrlCmd":这会让Ctrl变成多光标键,Alt就彻底失效 - 远程开发(SSH/WSL)中 X11 转发劫持
Alt:试试在本地窗口是否正常,不正常就换成本地终端启动 VSCode - 触控板双指拖拽被系统手势拦截:优先插个鼠标,或关掉 macOS 的“滚动缩放”和 Windows 的“触摸板手势”
键盘方式比鼠标更稳:Shift+Alt+↑/↓ 精准列扩缩
高分屏、非 100% 缩放、或要对齐某列字符时,鼠标拖拽容易偏移。用键盘组合更可靠:
-
Shift+Alt+↓:从当前光标向下扩展一列(每按一次加一行高度) -
Shift+Alt+↑:向上收缩选区,或反向扩展 - 配合
Home/End先跳到行首/尾再列选,避免手动拖歪 - 注意:列宽不一致(比如混用空格和 Tab)时,选区按字符位置对齐,不是视觉对齐——看着对齐 ≠ 实际对齐
列选后编辑错位?大概率是 Prettier 或 ESLint 在保存时自动格式化
你垂直选中三列变量名,敲 user_,结果有的行多了空格、有的被截断、有的甚至缩进全乱了——这不是 VSCode 列选 bug,是格式化工具在你按下 Enter 或保存时偷偷重排了。
- 临时禁用:在设置里关掉
editor.formatOnSave,或加// prettier-ignore注释 - 长期方案:配置 Prettier 的
insertPragma和requirePragma,只对明确标记的文件格式化 - 列选插入内容后,立刻按
Esc退出多光标模式,再手动保存,能避开部分自动触发时机
真正难的不是怎么触发列选,而是判断该不该用它——比如修改散落在不同行不同列的相同变量名,用 Ctrl+Shift+L(选择所有匹配项)比列选更安全;而对齐 JSON 字段、批量加前缀、补引号这类强位置规律操作,列选才是唯一解。选错模式,效率反而更低。











