Ctrl+Shift+K删行时,光标位置决定删哪一行,因为VSCode没有“当前编辑行”概念,该快捷键只依据光标所在行号执行删除,不认选区、不认折叠状态、不认焦点外区域;光标在第n行任意位置即删第n行,若Enter后光标移至第n+1行开头,则删第n+1行。
VSCode 没有“当前编辑行”这个概念,Ctrl+Shift+K(Windows/Linux)或 Cmd+Shift+K(macOS)只认光标所在的**行号**。哪怕你刚在第 5 行末尾按了 Enter,光标跳到第 6 行开头,此时删的就是第 6 行——不是你“以为还在改”的那行。
常见误操作场景:
Ctrl+Shift+K 会删掉整行(含折叠标记),不是只删展开后的内容when 条件 textInputFocus && !editorReadonly 不满足Ctrl+Shift+K,依然删整行;它不看选区,只看光标所在行多光标模式下,Delete 和 Backspace 的作用范围不同,容易误删:
Backspace 只删光标**前一个字符**,不会自动删整行或整词Delete 删光标**后一个字符**,同样只删单个字符Alt+Click 垂直选中),按 Delete 会逐行删掉该列位置的一个字符,不是清空整列Ctrl+Shift+K;或者用 Ctrl+L 选中当前行 → Shift+↓ 扩展 → Delete(这时内容进剪贴板,可粘贴回退)当你要对齐 JSON 的 value、表格中的某一列、日志时间戳这类**位置对齐但内容不同**的字段时,Ctrl+D 或 Ctrl+Shift+L 都会失效——它们靠文本匹配,而列选择靠坐标定位。
"editor.renderWhitespace": "all",看清缩进是空格还是 Tab,避免列偏移错位Alt(Windows/Linux)或 Option(macOS),从第一行目标起始列拖到最后一行对应列,松手即生成矩形选区Delete 可批量删掉每行该列范围内的字符(比如统一删掉某个固定位置的冒号)debug:),直接输入即可,所有光标同步响应Ctrl+Z 撤销多光标操作看似可靠,但实际有硬限制:VSCode 默认只保留最近 100 步操作。删完几行又狂敲几百行新代码,那条删除记录很可能已被挤出栈。
Ctrl+Shift+P → 输入 File: Save As 备份当前文件副本Ctrl+H → 开启正则 → 查找 ^s*$ → 替换为空,一次扫净,不漏折叠区域内的空行Ctrl+Shift+K,去 keybindings.json 搜 "key":"ctrl+shift+k" 确认绑定的是 editor.action.deleteLines