Alt + 点击添加多光标、Alt + ←/→导航光标历史、Alt + Z切换自动换行、Alt + 拖拽实现列选择,四者均依赖编辑器焦点上下文,且各自行为与常见误解不同。

Alt + 点击:不是跳转,是加光标
很多人第一次按 Alt + 点击 时以为会跳到定义,结果光标多了几个——这不是 bug,是 VSCode 默认把 Alt + 点击 绑定为「添加多光标」,而非「跳转到定义」。这个行为和语言服务器无关,纯编辑器层操作。
常见错误现象:Alt + 点击 后没反应?大概率是鼠标没点准文本区域(比如点在行号、空白缩进或折叠图标上);或者当前文件类型不支持多光标(极少见,但某些只读视图如 GitLens diff 面板会禁用)。
- 它不依赖语法解析,任何文本文件(.txt、.log、.json)都能用
- 点击位置决定光标落点:点在哪,光标就在哪,哪怕点在空格或换行符前
- 连续点击可叠加多个光标,最多支持约 100 个(超出后输入会变慢,VSCode 不报错但响应滞后)
- 想取消所有额外光标?按
Esc,只留主光标
Alt + ← / →:导航历史不是标签页顺序
Alt + ← 和 Alt + → 默认不生效,不是快捷键失效,是 VSCode 主动禁用了这两个组合键——为避免和 Windows/Linux 系统级窗口导航冲突。启用后它跳的也不是「最近打开的文件」,而是「你光标停留过的编辑位置」。
触发条件很关键:必须有真实光标移动才能生成节点。比如你用 Ctrl + Click 跳到函数定义,再按 Alt + ← 就能回退;但如果你只是用鼠标点了不同 tab,没动过光标,历史栈里就没有记录。
- 历史仅限当前窗口,关掉重开就清空
- 终端(Terminal)、搜索框(Search)、设置页(Settings)里按无效
- WSL 或远程开发时,
Alt + ←常被终端捕获,建议改用Ctrl + Alt + ←或直接用Ctrl + 1~Ctrl + 9 - 如果绑定后仍不响应,检查键盘映射里有没有其他命令占用了该组合(比如某插件绑定了相同快捷键)
Alt + Z:自动换行开关只对编辑器生效
Alt + Z 是视觉折行开关,不是格式化,也不改内容。它只在当前激活的文本编辑器中起作用,对终端、输出面板(Output)、调试控制台(Debug Console)完全无效。
为什么有时按了没反应?最常见原因是焦点不在编辑区:比如你刚在搜索框输完字,光标还停在那儿,此时按 Alt + Z 就不会触发。确认左上角文件标签是高亮状态,且鼠标已点入代码区域。
- 开启后长日志、base64 字符串、无空格 JSON 字段会折行显示,但复制出来仍是单行
- 性能影响真实存在:含大量超长无空格行的 minified JS 文件开启后,滚动可能卡顿(浏览器渲染限制,非 VSCode 缺陷)
- macOS 用户要用
Option + Z,Cmd + Z是撤销,别混 - 配置项叫
editor.wordWrap,值为"on"/"off"/"wordWrapColumn",快捷键只切换前两者
Alt + 拖拽:列选择不是“画框”,是矩形选区
Alt + 拖拽(Windows/Linux)或 Option + 拖拽(macOS)触发的是列选择(Column Selection),本质是创建一个矩形文本区域,不是普通选区。它对齐的是字符列位置,不是视觉宽度,所以中文、emoji、全角符号可能导致列偏移。
典型误用:拖拽时鼠标稍微抖动,选区就变成斜的或断开——列选择要求严格垂直拖动。更稳的方式是先用方向键把光标移到起点列,再 Shift + Alt + ↓ 向下扩展。
- 列选择后输入内容,会在每行相同列位置插入,适合批量补前缀、加注释、对齐等号
- 不能跨空行:中间有空行时,列选区会中断,需手动分段操作
- 与
Ctrl + D冲突:如果开启了「在选择匹配项时自动添加光标」选项,列选区内按Ctrl + D可能意外选中内部单词 - 退出列选择只需一次点击或按
Esc,不用松开 Alt 键
Alt + 点击,在编辑器里是加光标,在侧边栏里可能啥都不干,在终端里甚至会被系统截获。真正要稳定用好,得先确认光标在哪、焦点在谁身上。


















