Ctrl+Shift+K 删除光标所在行,因 Sublime 默认 caret_style 为 "smooth" 导致光标位置难辨;设为 "phase" 可清晰识别;连按仅逐行删除,批量删需先选中;输入法或插件可能劫持快捷键;删行会连带换行符,须先统一行尾格式为 Unix(LF)。

直接按 Ctrl+Shift+K(Windows/Linux)或 Cmd+Shift+K(macOS),光标在哪一行,就删哪一行——不用选中、不依赖剪贴板、连换行符一起干掉。
为什么光标没动却删错了行?
这个快捷键只认“光标所在行”,但 Sublime 默认的 caret_style 是 "smooth",光标在行首/行尾时视觉上不明显,容易误判位置。比如光标实际停在第 5 行末尾,你以为在第 6 行开头,一按 Ctrl+Shift+K 就把第 5 行删了,还觉得是“删错行”。
解决办法很简单:打开 Preferences → Settings,在用户设置里加一行:"caret_style": "phase",光标会变成跳动的竖线,一眼看清当前行。
删多行时为啥只删了一行?
连按 Ctrl+Shift+K 不会批量删——第一次删第 5 行,光标自动落到第 6 行开头;第二次触发,删的是“新的当前行”,也就是第 6 行。这不是 bug,是设计逻辑。
真正批量删要先“对齐操作对象”:
- 连续多行:用
Shift+↓向下扩展选中,再按Delete或Backspace - 不连续多行:按住
Ctrl(Win/Linux)或Cmd(macOS),点击多行左侧的行号空白处(出现虚线框即整行选中),再统一按Ctrl+Shift+K - 已定位匹配行:先
Ctrl+F输入正则(如^.*console\.log.*$),勾选Regular Expression,点Find All,再按Ctrl+Shift+K
快捷键没反应?大概率是被截胡了
Ctrl+Shift+K 失灵最常见的原因是中文输入法劫持——搜狗、微软拼音等常把这组键设为中英文切换热键,直接吞掉,Sublime 根本收不到。
排查步骤很直接:
- 切到英文输入法,再试一次
- 打开
Preferences → Key Bindings,搜索"ctrl+shift+k",看是否被插件规则覆盖 - 临时禁用插件测试:菜单栏
Preferences → Package Control → Disable Package,重点关SideBarEnhancements和Emmet
删完发现换行符混用了,后续操作全乱套
Ctrl+Shift+K 总是连内容带换行符一起删,所以删掉第 5 行后,第 4 行末尾会直接接上第 6 行开头——这本身没问题。但如果你的文件同时存在 \n(Unix)和 \r\n(Windows)换行符,Ctrl+L 选行、Ctrl+Shift+L 拆光标、甚至正则里的 ^ 和 $ 都可能错位。
这不是小问题,是前提条件:操作前务必执行 Ctrl+Shift+P → Convert Line Endings: Unix,统一成 LF 格式再动手。


















