alt+点击默认跳转而非加光标,需修改设置或解除绑定;alt+拖拽为列选择模式;ctrl+d语义匹配,alt+点击物理定位;多光标删除需谨慎,推荐ctrl+shift+l后统一操作。

Alt + 点击不是跳转,是加光标
很多人按住 Alt 键去点变量,结果跳到了定义处——那是因为你没关掉「按住 Alt 点击跳转」这个默认行为。VSCode 默认把 Alt + 点击 绑定在 editor.action.goToDeclaration 上,和多光标完全无关。想用它加光标,得先改设置。
- 打开
settings.json(Ctrl+Shift+P → “Preferences: Open Settings (JSON)”) - 加这一行:
"editor.multiCursorModifier": "ctrlCmd" - 重启或重载窗口后,
Ctrl + 点击(macOS 是Cmd + 点击)才真正触发多光标 - 如果坚持用
Alt,就得手动解除跳转绑定:搜editor.action.goToDeclaration,右键 → “Remove Key Binding”
Alt + 拖拽 = 列选择,不是随便划
按住 Alt 同时鼠标拖拽,VSCode 进入的是**列选择模式**(也叫矩形选择),不是普通选区。它只认垂直对齐的列位置,哪怕中间有空行、缩进不一致、甚至某行特别短,它也会强行“拉直”到同一列数。
- 光标必须先放在目标列(比如所有等号后第 1 个字符位),再按
Alt拖;从行首拖起会错位 - 拖完松手,所有被框中的“列位置”都生成光标,输入内容会严格按列填充,不会自动补空格或对齐
- 若某行在该列无字符(比如太短),光标会落在行尾,此时输入可能破坏结构,要提前检查
- 想退出列模式?松开
Alt后按一次Esc,否则下次点击还沿用列逻辑
Ctrl + D 和 Alt + 点击根本不是一回事
Ctrl + D 是语义匹配,Alt + 点击 是物理定位——它们解决的问题完全不同,混用反而容易翻车。
-
Ctrl + D:从光标所在词开始,往后找**完全相同、独立成词**的文本(区分大小写、不跨单词)。适合 rename 变量,但遇到user和username会误选 -
Alt + 点击:不管内容,只管你点哪就加光标在哪。适合改几处位置不规律、但上下文又不能靠词匹配的代码(比如 JSON key 前加前缀、注释里补 ID) - 想全选文档里某个词?别连按
Ctrl + D十几次,直接Ctrl + Shift + L,它一次性选中全部,且不依赖当前光标是否在词内 - 误加了光标?按
Ctrl + U撤销上一个,可连按多次;全清光标就按Esc
多光标编辑最危险的坑:删除和回退
多光标下按 Delete 或 Backspace 不是删一整块,而是每个光标各自删前后一个字符。这在字段值长度不一时极易出错。
- 比如三行:
"name": "Alice"、"age": 25、"city": "Beijing",光标全放在冒号后,按一次Backspace,结果是:"name": "lice"、"age": 5、"city": "eijing" - 想安全删掉所有引号?先用
Ctrl + Shift + L选中所有",再按Delete—— 因为所有引号都是单字符,长度一致 - 输入时按
←/→方向键,只会移动**最后一个光标**,其他光标不动,容易误以为在编辑全部 - 最稳的批量删法:先
Ctrl + Shift + L选中目标文本,再Ctrl + X剪切,比多光标删更可控











