WebStorm中CRLF转LF需分两步:先在Settings→Editor→Code Style→Line separator设为Unix and macOS(LF)以影响新建文件;再右键目录→File Properties→Line Separators→LF批量修改现有文件,否则Git提交仍报warning。

WebStorm 里 CRLF 转 LF 不是“一键全局生效”,必须分两步:先改新文件默认行为,再批量修正已有文件。否则 Git 提交时仍会持续报 warning: CRLF will be replaced by LF。
设置新文件默认换行符为 LF
这个操作只影响后续新建的文件,对已存在文件完全无效 —— 很多人卡在这一步就以为搞定了,结果提交时还是满屏警告。
- 打开
Settings(Windows/Linux 快捷键Ctrl+Alt+S,macOS 用Cmd+,) - 路径:
Editor → Code Style → Line separator - 下拉选中
Unix and macOS (\n)(即 LF) - 点
OK保存
此后所有新建文件、粘贴进来的文本、自动生成的代码模板,都会用 \n 换行。但注意:已打开的文件编辑器标签页不会自动重载换行符,需手动触发一次保存(Ctrl+S)才会写入新格式。
批量把现有文件从 CRLF 改成 LF
选中目录后右键 → File Properties → Line Separators → LF 是最直接的方式,但有三个关键限制:
- 仅作用于当前项目视图中“可见”的文件(比如你折叠了
node_modules,它就不会被处理) - 对二进制文件或非文本文件(如图片、.zip)会静默跳过,不报错也不提示
- 如果文件权限为只读(比如被 Git LFS 锁定或受系统保护),WebStorm 会跳过且无任何反馈
建议操作前先在终端执行一次 git status,确认哪些文件被标记为“modified”仅因换行符变化;批量修改后立刻 git add -u,避免漏掉部分文件。
为什么改了 WebStorm 还是报 CRLF 警告?
根本原因在于 Git 自己也在干预换行符,和 WebStorm 是两套独立机制。即使 IDE 全部设为 LF,Git 仍可能按 core.autocrlf 配置偷偷转换。
- 检查当前配置:
git config --global core.autocrlf - 推荐值:
input(Linux/macOS 用户)或false(Windows 上用 WSL2 或远程 SSH 解释器时) - 绝对不要设为
true,这是 Windows 默认值,会导致 Git 在 checkout 时强制转 CRLF,和 WebStorm 冲突
更稳妥的做法是在项目根目录加 .gitattributes 文件,明确声明:* text=auto eol=lf。这样 Git 会忽略本地 core.autocrlf,统一按 LF 处理所有文本文件。
容易被忽略的细节
WebStorm 的 Line Separators 设置不跨项目生效,每个新打开的项目都要单独设置;而且它不会识别 .editorconfig 中的 end_of_line = lf 规则 —— 即使你项目里有该文件,WebStorm 也只认自己 Settings 里的选项。真正可靠的跨编辑器一致性,得靠 .gitattributes + .editorconfig 双保险,IDE 设置只是辅助。


















