Sublime Text 的 default_line_ending 配置仅在 Preferences → Settings – User 中设为 "unix"/"windows"/"system" 时影响 Ctrl+N 新建文件;语法专属设置(如 .py 文件的 Settings – Syntax Specific)才控制对应类型文件默认换行符;右下角切换或 Convert 操作需手动保存才生效;Git 换行符问题须通过 .gitattributes 和 core.autocrlf 解决。

Sublime Text 的 default_line_ending 配置只在特定位置生效,填错地方或值写错就完全没用——它不会报错,只会静默退回到系统默认(Windows 下就是 CRLF)。
Settings – User 里加 default_line_ending 才管新建文件
这个配置只影响 Ctrl+N 新建的空白文件,对已打开、拖入、双击打开的文件无效。必须写在 Preferences → Settings – User 的右侧 JSON 中:
- 值只能是小写字符串:
"unix"(LF)、"windows"(CRLF)、"system"(不推荐) - 别写
"lf"或"crlf"——Sublime 不识别,直接忽略 - 改完后新开一个空标签页,右下角应立刻显示
Unix;如果还是Windows,说明配置没生效或被覆盖
语法专属设置才真正控制 .py/.js/.json 的默认换行符
default_line_ending 在通用用户设置里只管“新空白文件”,而真实项目中你更需要的是:打开一个 .py 文件时,默认就是 LF。这时必须用语法专属设置:
- 打开任意一个
.py文件 →Preferences → Settings – Syntax Specific - 在右侧 JSON 中添加:
"default_line_ending": "unix" - 同理,为
.js、.json单独配一次;但别给.env或.md强行设,它们可能依赖系统原生行为 - 注意:这个设置优先级高于全局
Settings – User,也高于.editorconfig里的end_of_line吗?不,.editorconfig会覆盖它
右下角点了 Unix 却没保存,换行符根本没变
点击右下角 CRLF 或 LF 只是切换内存中的视图,不是自动保存。常见错误现象:
- 点了
Convert to Unix line endings→ 状态栏变Unix→ 关掉文件 → 下次打开还是CRLF - 原因:没按
Ctrl+S(Windows/Linux)或Cmd+S(macOS)写入磁盘 - 批量处理多个已打开文件:先
Ctrl+Shift+P→ 输入Convert Line Endings to LF(注意大小写)→ 再Ctrl+Shift+P→Save All
Git 还在报 CRLF 警告?那问题不在 Sublime
即使 Sublime 保存的是 LF,Git 仍可能在检出时偷偷转成 CRLF——这是 core.autocrlf 和 .gitattributes 在起作用:
- 检查
git config core.autocrlf:Windows 默认是true,会强制检出为 CRLF - 项目根目录加
.gitattributes文件,内容写:* text=auto eol=lf - 然后执行:
git add --renormalize .,让 Git 重算所有文件的换行符 - 如果项目已有
.editorconfig且含end_of_line = crlf,EditorConfig 插件会劫持 Sublime 行为,优先级高于语法专属设置
最易被忽略的一点:Sublime 只管“保存时写什么”,不管“Git 读出来是什么”。跨平台协作真正的防线在 .gitattributes 和 Git 配置,不是编辑器设置。


















