sublime text中判断行尾符类型最准确的方式是查看右下角状态栏显示的lf或crlf,点击可切换;默认用lf,windows项目建议配合.editorconfig按路径区分设置。

Sublime Text 默认用 \n(LF),Windows 程序常期望 \r\n(CRLF)——直接改设置不顶用,得靠状态栏手动切或保存时自动适配。
怎么看当前文件的行尾符类型
右下角状态栏会显示 LF 或 CRLF,点它就能弹出菜单切换。这是最准的判断方式,比看文件属性或猜编码靠谱得多。
常见错误现象:git status 显示一堆“CRLF will be replaced by LF”警告;Python 脚本在 Windows 上跑报错 unexpected character after line continuation character,其实只是换行符混了。
- 状态栏没显示?说明 Sublime 没识别出当前换行格式,可能是文件损坏或空文件
- 刚新建的文件默认继承系统偏好,但不会主动写入 BOM 或标记,所以状态栏可能空白
- 从剪贴板粘贴进来的文本,行尾符会沿用源程序的格式,不是 Sublime 决定的
怎么永久让新文件用 CRLF(比如给 Windows 批处理用)
不能只改 default_line_ending 设置,Sublime 的“永久”只对新建空白文件生效,对打开的已有文件无效。
实操建议:
- 打开
Preferences → Settings,在右侧用户设置里加这行:"default_line_ending": "CRLF" - 但更稳的做法是:用
File → Save with Encoding → UTF-8保存一次,再点状态栏选CRLF,最后Ctrl+S强制写入 - 如果项目必须统一 CRLF(如 .bat、.reg 文件),建议配合
.editorconfig,Sublime 有插件支持,比纯靠设置可靠
为什么改了设置后旧文件还是 LF?
因为 Sublime 不会在你修改设置后自动重写所有已打开文件的换行符——它只管新内容输入时用什么,不碰已有内容的二进制结构。
这其实是设计使然:避免意外破坏二进制敏感文件(比如某些配置文件把 \r 当作有效字符)。
- 要批量转现有文件?选中多文件 → 右键 →
Convert Line Endings → Windows (CRLF) - 用正则替换
\n为\r\n风险极高,可能把字符串里的\n也替了 - Git 用户注意:
core.autocrlf优先级高于 Sublime 设置,它会在检出/提交时偷偷转换,掩盖真实问题
真正麻烦的是混合场景:同一项目里 Python 脚本要 LF,批处理要 CRLF,而 Git 配置又设成 true。这时候状态栏点击切换 + .editorconfig 按路径区分,比全局设置管用得多。










