Sublime Text 默认不自动统一换行符,需配置 "default_line_ending": "lf" 实现新文件默认 LF;但已存 CRLF 文件需插件(如 LineEndings)或 Git 的 core.autocrlf 与 .gitattributes 才能彻底规范。

Sublime Text 默认不会在保存时自动统一换行符,但可以通过配置让所有文件保存为 LF(Unix/Linux/macOS 风格),这对 Git 仓库尤其重要——避免 CRLF 混入导致 git diff 误报或 CI 构建失败。
设置全局默认换行符为 LF
这是最直接的方案,影响所有新建/未指定换行符的文件:
- 打开
Preferences → Settings – User - 在右侧配置中添加或修改
"default_line_ending"字段 - 值必须是字符串
"lf"(小写,不能写成"LF"或"\n")
{
"default_line_ending": "lf"
}
注意:该设置只对新创建文件或未显式设置换行符的文件生效;已存在且手动设为 CRLF 的文件仍保持原样,需另存或手动转换。
保存时强制转为 LF(无视当前文件换行符)
仅靠 default_line_ending 不够——它不干预已有文件的换行符。要真正“保存即转换”,需启用 ensure_newline_at_eof_on_save 并配合插件或手动操作,但 Sublime 原生不支持“保存时无条件覆盖换行符”。可行替代路径:
- 安装插件
LineEndings(通过 Package Control),它提供命令Convert Line Endings: To Unix,可绑定快捷键 - 或使用内置命令:
Ctrl+Shift+P(Win/Linux)/Cmd+Shift+P(macOS)→ 输入Convert Line Endings: Unix→ 回车 - 若希望自动化,可用
Save Hook类插件(如EventListener自定义插件),但需写 Python 脚本监听on_pre_save事件并调用view.set_line_endings("unix")
Git 提交前自动标准化(更推荐的防线)
与其依赖编辑器,不如让 Git 自己处理——这才是真正 Git 友好的做法。在项目根目录或全局 Git 配置中启用 core.autocrlf:
- Linux/macOS 用户推荐:
git config --global core.autocrlf input(提交时转LF,检出不转换) - Windows 用户若开发跨平台项目,也建议设为
input,而非true(后者会在检出时转CRLF,易与编辑器冲突) - 同时确保项目有
.gitattributes文件,显式声明文本文件行为:* text=auto eol=lf
这样即使 Sublime 误存了 CRLF,Git 提交时也会被纠正,比编辑器配置更可靠。
真正容易被忽略的是:Sublime 的 default_line_ending 不会重写已打开文件的换行符状态,而 Git 的 autocrlf 和 .gitattributes 才是跨团队协作中防止换行符污染的主力。编辑器配置只是辅助,别把它当成唯一防线。










