Sublime Text 无法一键批量转换多个文件换行符,但可通过ConvertNewlines插件对已打开文件统一转换(需手动保存),或用终端命令如dos2unix、PowerShell批量处理整个目录。

怎么在 Sublime Text 里批量改文件换行符
Sublime Text 本身不支持「一键批量转换多个文件」的换行符,但可以通过组合操作+插件实现高效处理。核心思路是:先用 Find in Files 定位目标文件,再用插件或手动方式逐个切换 Line Endings 模式。
确认当前文件换行符类型
打开任意文件后,右下角状态栏会显示当前换行符格式(LF、CRLF 或 CR)。点击它可弹出菜单切换;但这个操作只影响当前文件,且不会自动保存——必须手动按 Ctrl+S(Windows/Linux)或 Cmd+S(macOS)才真正写入新换行符。
- 如果右下角没显示,说明 Sublime 没识别出换行符差异(比如文件全是空行或未保存)
-
LF是 Unix/Linux/macOS 默认,CRLF是 Windows 传统标准 - Git 提交时若提示
LF will be replaced by CRLF,通常意味着本地设置为core.autocrlf=true,而文件实际是LF
用 ConvertNewlines 插件批量处理
这是最接近“批量转换”的方案。安装后支持命令面板调用,可对当前打开的所有文件统一转成指定格式。
- 通过
Package Control: Install Package安装ConvertNewlines - 打开要处理的多个文件(可用
Ctrl+P快速打开,或拖入文件夹) - 按
Ctrl+Shift+P→ 输入Convert Line Endings to LF(或CRLF)→ 回车 - 每份文件都会被修改,但**不会自动保存**,需再执行
Ctrl+Shift+P→Save All
注意:该插件不递归处理文件夹内所有文件,只作用于已打开的 tab。
用 Shell + dos2unix / fromdos 批量转换(推荐给项目级操作)
当需要处理整个目录(如 src/ 下所有 .py 文件),直接在终端操作更可靠,也避免 Sublime 内存压力。
- macOS/Linux:安装
dos2unix(brew install dos2unix),然后运行:find ./src -name "*.py" -exec dos2unix {} \; - Windows(WSL 或 Git Bash):同上;原生 CMD 不支持
dos2unix,可用 PowerShell:Get-ChildItem ./src -Recurse -Include "*.py" | ForEach-Object { (Get-Content $_.FullName) | Set-Content $_.FullName -Encoding UTF8NoBOM } - 注意:PowerShell 默认用
CRLF,上面命令强制用UTF8NoBOM编码并保留LF换行(取决于系统默认)
Sublime 的“换行符”功能本质只是编辑器视图层标识,真正生效靠文件内容字节。所以批量场景下,绕过编辑器直接操作文件内容更稳。










