VSCode竖向编辑需Alt+Shift+拖拽(Win/Linux)或Option+Shift+拖拽(macOS),非Alt单击;键盘操作Shift+Alt+↓更精准;设置editor.multiCursorModifier为"alt"/"meta"才能启用,列选不识别语法结构,需预处理缩进对齐。

VSCode 里按住 Alt 键拖拽不是“竖向编辑”的万能开关,它只在特定组合、设置和文本结构下才触发真正的列选择——手一松就出错,是常态,不是例外。
Alt+Shift+鼠标拖拽才是列选择,不是 Alt+Click
很多人误以为 Alt+点击就能竖选,其实 Alt+Click(Windows/Linux)或 Option+Click(macOS)只是加单个光标,属于“多光标点选”,和列选择无关。真·竖向矩形选区必须是:Alt+Shift+鼠标左键从上往下拖拽(Win/Linux),或 Option+Shift+拖拽(macOS)。松手瞬间,VSCode 按字符坐标切出一个矩形块,所有行对应列位置都会生成光标。
- 拖拽起点和终点必须落在有效文本行内,空行或缩进不齐的行会导致部分光标缺失
- 如果拖完只选中了一行,大概率是没按住
Shift,或者拖拽方向不是垂直向下 - 高 DPI 屏幕或非 100% 缩放时,鼠标拖容易偏移,建议改用键盘方式(见下一条)
键盘方式更稳:Shift+Alt+↑/↓ 或 Ctrl+Alt+↓
鼠标拖不准?优先用键盘:Shift+Alt+↓ 从当前光标开始,逐行向下扩展一个列光标;Ctrl+Alt+↓ 则直接在下一行相同列位置插入新光标(↑ 同理向上)。这种方式不依赖鼠标精度,也不受触控板手势干扰。
-
Shift+Alt+↓适合已对齐的连续多行(如字段赋值列表) -
Ctrl+Alt+↓更灵活,可跳过空行或不规则行,但需手动控制光标数量 - 配合
Home/End先对齐到行首/行尾,再列扩展,能避免列偏移
editor.multiCursorModifier 设置会禁用 Alt 列选
如果你按住 Alt 拖半天没反应,先打开设置搜 editor.multiCursorModifier。如果它的值是 "ctrlCmd"(常见于 macOS 用户为适配 Sublime 风格而修改),那 Alt 就彻底失效了——此时列选择必须用 Ctrl+Shift+拖拽(Win/Linux)或 Cmd+Shift+拖拽(macOS)。
- 恢复默认:把
editor.multiCursorModifier设为"alt"(Win/Linux)或"meta"(macOS) - 改完不用重启,立刻生效
- 该设置同时影响
Alt+Click 多光标和列选择,别只调一半
列编辑后粘贴/输入容易破坏语法结构
列选择本质是纯字符坐标操作,不识别引号、括号、注释或字符串边界。比如在 JSON 的多个键名前批量加引号,若某行值本身含引号,就可能把 name: John 变成 "name": "John",而你本意只是加左边引号。
- 编辑前务必关掉
editor.formatOnType和editor.formatOnSave,否则自动格式化会打乱列光标位置 - 避免在含嵌套结构(如对象字面量、数组、多行字符串)的区域使用列编辑
- 改完立刻用
Ctrl+Z回退试错,比事后 debug 更快
最常被忽略的一点:列选择不看语义,只认行列数字。哪怕你对着整齐的代码拖得再准,只要某一行末尾多了个空格、缩进用了混搭制表符+空格,那一行的光标就会错位——所以对齐前先统一缩进,比反复重拖更重要。











