ctrl+l是sublime text唯一可靠的整行选中方式,按一次选中光标所在行(不含换行符),再按一次向下扩展一行;语言模式错误或换行符混用会导致异常,需手动切换语言和统一为lf。

Ctrl+L 是唯一靠谱的整行选中方式
Sublime Text 不认“鼠标点行号”或“三击”,它只认 Ctrl+L(Windows/Linux)或 Cmd+L(macOS)。按一次,光标所在行内容(不含换行符)就被选中;再按一次,自动向下扩展一行——这是原生行为,不依赖插件,也不看鼠标在哪,只看光标落在哪行里。
- 如果已选中部分文字,
Ctrl+L会先清空原选区,再选中当前行——这不是失效,是重置逻辑 - 语言模式错(比如右下角显示
Plain Text却在写 Python),Ctrl+L可能卡在字符串中间或折行处;手动点右下角切换成Python或JavaScript就恢复 - 文件混用
\r\n和\n,或含 BOM/不可见控制符,会导致“物理一行”被切为多个逻辑行;用Ctrl+Shift+P→ 输入Convert Line Endings: Unix统一为 LF 即可
删整行别犹豫,直接 Ctrl+Shift+K
Ctrl+Shift+K(Win/Linux)或 Cmd+Shift+K(macOS)是真正的“删整行”快捷键:光标在哪行,就删哪行,不进剪贴板,不拖泥带水。它和“剪切”同键,区别只在于你后不粘贴——不粘贴,就是纯删除。
- 想删多行?按住
Ctrl(Win)或Cmd(Mac),在不同行首单击,出现多个光标后,再按Ctrl+Shift+K,一次性全干掉 - 别用
Delete或Backspace代替——它们只删字符,不是整行;哪怕你先Ctrl+L选中了,再按Delete,也容易误删换行符,导致下一行被“吸”上来 - 如果启用了 Vintage 模式(vi 键绑定),
Ctrl+L被占用了,得改用Shift+V进入行选择模式,再用方向键操作
批量删指定行?正则比鼠标快十倍
要删所有含 console.log 的行、所有空行、或所有以 # 开头的注释?别手动滚屏找,开替换面板用正则。
- 打开
Ctrl+H,点右上角.*按钮启用正则模式 - 删空行:
^\s*$→ 替换留空;删注释行:^#.*$或^//.*$ - 关键陷阱:
.默认不匹配换行符,但如果你不小心勾了matches newline,^和$就会失效,变成只匹配全文开头结尾——务必关掉它
为什么 Ctrl+Shift+L 不是删行键?
Ctrl+Shift+L(Win/Linux)或 Cmd+Shift+L(macOS)的真实作用是“把当前选区按行拆成多个光标”,不是删行。有人误以为它是删除键,是因为常配合 Ctrl+L 使用:先 Ctrl+L 选中一行,再 Ctrl+Shift+L 拆出光标,最后按 Delete。但这多了一步,还容易在多行时漏删换行符。
- 真正想删不保留内容,就用
Ctrl+Shift+K;想删但留着内容备用,就用Ctrl+X(剪切) - 如果已经按错了
Ctrl+Shift+L,光标变多了,按Esc就能一键退出多光标状态
最常被忽略的其实是语言模式和换行符一致性——它们不报错,但会让 Ctrl+L 和正则表现异常。调对这两项,90% 的“选不中”“删不全”问题就没了。










