右下角状态栏显示LF或CRLF即为真实换行符类型;未显示时可通过命令面板“Set Line Endings”查看高亮项,或用HexViewer查末尾字节0A(LF)、0D 0A(CRLF)。

怎么看当前文件用的是 LF 还是 CRLF
右下角状态栏显示的就是真实换行符类型,LF 或 CRLF —— 不用猜、不用查文件头。没显示?说明 Sublime 没识别出差异(比如空文件、纯 ASCII 行末无换行),这时可调命令面板:Ctrl+Shift+P → 输入 Set Line Endings,看高亮项;或者装 HexViewer 插件查末尾字节:0A 是 LF,0D 0A 是 CRLF。
怎么一键切换当前文件的换行符
点击右下角的 LF 或 CRLF,选 Convert to Unix line endings(转 LF)或 Convert to Windows line endings(转 CRLF)。这个操作只改换行符,不碰编码、不重排版,但不会自动保存——必须手动按 Ctrl+S(Windows/Linux)或 Cmd+S(macOS)才写入磁盘。关掉再打开又变回去?八成是忘了保存。
怎么批量转换已打开的多个文件
Sublime 原生命令支持多标签批量操作,但必须分两步走,缺一不可:
-
Ctrl+Click(Windows/Linux)或Cmd+Click(macOS)多选标签页 -
Ctrl+Shift+P调出命令面板,输入Convert Line Endings to LF(注意大小写,不能全小写)并回车 - 再次调出命令面板,输入
Save All并回车 —— 这步漏了,所有转换都只是内存里的临时状态
想转 CRLF?命令是 Convert Line Endings to Windows,不是 to CRLF。
为什么改了设置还是保存为 CRLF
default_line_ending 只影响新建空白文件(Ctrl+N),对已存在、拖进来的、Git 检出的文件完全无效。换行符行为由三层控制,优先级从高到低:
- 文件自身已有换行符类型(打开即锁定)
-
View → Line Endings当前选择(临时覆盖) -
Preferences → Settings – User中的default_line_ending(仅对新空白文件生效)
所以你在用户设置里写了 "default_line_ending": "unix",但打开一个旧 .py 文件,右下角照样显示 CRLF —— 这不是 bug,是设计。真正要统一整个项目,得靠 .gitattributes 或终端命令 dos2unix,而不是指望编辑器自动“擦屁股”。


















