Alt+点击用于多光标插入而非跳转定义,其功能是editor.action.addCursorsAtLocation;跳转定义需用Ctrl/Cmd+点击,且Alt+Shift+拖拽才是列选择,Alt+←/→需手动绑定导航命令,Alt+↑/↓可移动整行但只读文件中静默失效。

Alt + 点击 = 多光标插入,不是跳转
很多人第一次按 Alt + 点击,发现没跳到定义,以为功能坏了——其实它根本就不是干这个的。VSCode 里 Alt + 点击(Windows/Linux)或 Option + 点击(macOS)默认触发的是 editor.action.addCursorsAtLocation,作用是在点击处新增一个光标,用于并行编辑。跳转定义用的是 Ctrl + 点击(或 Cmd + 点击),别混。
- 只在代码任意位置点,不依赖语法识别;哪怕点在注释、空格、字符串中间都有效
- 连续点击多个位置,会叠加光标;最多支持约 100 个(超出后输入变慢)
- 若点击后光标没加,检查设置里
editor.multiCursorModifier是否被误设为"ctrlCmd"—— 这会让 Alt 键失效 - 远程开发(如 WSL/SSH)中 Alt 常被终端劫持,可临时改用
Ctrl+Alt+↓替代垂直加光标
Alt + Shift + 拖拽才是列选择,不是 Alt + 点击
想对齐修改多行同一列?比如批量在等号前加 const ,必须用 Alt+Shift+鼠标左键拖拽(Win/Linux),Option+Shift+拖拽(macOS)。Alt + 点击只会加单点光标,无法形成矩形选区。
- 松手即确定范围,VSCode 不高亮提示“正在列选”,容易误判是否成功
- 文本含混合缩进(空格+Tab)时,列坐标按字符数算,视觉上可能错位——建议先运行
editor.action.formatDocument统一缩进 - 折叠代码块内不可列选;滚动中拖拽,只覆盖当前可见区域
- 更稳的键盘替代:把光标移到目标列,按
Shift+Alt+↓向下逐行扩展,配合Home可对齐到行首再列选
Alt + ← / → 默认不工作,需手动绑定导航命令
VSCode 默认禁用 Alt+← 和 Alt+→,不是快捷键失效,是它压根没配。这两个键对应的是编辑位置历史回溯,不是文件标签切换,也不是 Git 分支跳转。
- 绑定命令为
workbench.action.navigateBack和workbench.action.navigateForward - 历史仅限当前窗口,关掉重开就清空;不同窗口之间不共享
- 必须有至少一次光标移动(如方向键、Ctrl+Click、鼠标点击)才会生成可回溯节点
- WSL 或集成终端中,
altLeftSelectsWord类选项可能截获 Alt+←,需在终端设置里关闭
Alt + ↑ / ↓ 移动整行,但注意只读文件会静默失败
Alt+↑ 和 Alt+↓ 是 VSCode 内置的行移动快捷键,对应命令 editor.action.moveLinesUpAction 和 editor.action.moveLinesDownAction,稳定、少冲突,适合调整代码结构顺序。
- 只在
editorTextFocus && !editorReadonly条件下生效;在只读文件(如 node_modules 里打开的文件)中按了没反应,也不报错 - 移动时保留原缩进,但若行尾有空格,可能被格式化插件自动删掉——建议编辑前关掉
editor.formatOnSave - 与多光标共存:若已有多个光标,
Alt+↑会把所有光标所在行一起上移,慎用于带条件逻辑的代码块
真正容易被忽略的点是:Alt 系列操作几乎全部依赖当前编辑器焦点状态和设置一致性。改完 settings.json 后不重启窗口,或在远程连接里没验证本地键位映射,90% 的“不生效”问题都出在这儿。


















