notepad++自带eol转换功能完全够用,无需插件;右下角状态栏直接显示当前换行符(如“windows (cr lf)”或“unix (lf)”),所见即磁盘真实存储;批量转换应使用“编辑→eol转换→unix (lf)”而非查找替换,大文件建议另存为再覆盖;git提示已修改多因core.autocrlf设置冲突所致。

Notepad++ 自带的 EOL 转换功能完全够用,无需插件 —— 插件反而容易出问题,尤其新版 v8+ 已移除 TextFX,硬装可能崩溃。
怎么确认当前文件用的是哪种换行符
右下角状态栏直接显示,比如 Windows (CR LF) 或 Unix (LF)。它不猜测、不自动适配,显示什么就是磁盘里实际存的什么。如果你刚从 Git 拉下来一个 .sh 脚本,状态栏显示 Unix (LF),但在 Windows 记事本里打开全挤成一行,不是 Notepad++ 错了,是记事本根本不认 \n。
批量把 CRLF 转 LF(比如修 shell 脚本报错)
这是最常见需求:Linux 上执行 bad interpreter: No such file or directory,八成是 Windows 换行惹的祸。
- 打开文件后,点
编辑 → EOL 转换 → Unix (LF) - 转换完右下角立刻变成
Unix (LF),不用保存就能预览效果 - 文件大于 10MB?先
另存为新文件名,再手动覆盖原文件,避免卡死或中断丢数据 - 别用
Ctrl+H查找\r\n替换为\n:空行、末尾无换行、字符串里含字面量\r都会被误伤
为什么转完 Git 还提示“已修改”
Git 的 core.autocrlf 在后台偷偷做转换,而 Notepad++ 修改的是工作区原始字节 —— 它绕过了 Git 的感知流程。
- Windows 开发者建议运行:
git config --global core.autocrlf true(检出 CRLF,提交转 LF) - WSL/Linux 用户建议:
git config --global core.autocrlf input(只提交转 LF,不检出转换) - 项目已有混杂换行?执行:
git add --renormalize .再提交,让 Git 重新统一暂存区 -
.gitattributes里写了* text=auto?那 Notepad++ 改完,下次git checkout很可能又被悄悄还原
新建文件默认用 Unix 换行符怎么设
这个设置只影响新建文件,对已打开的旧文件无效,也不影响粘贴进来的内容。
- 点
设置 → 首选项 → 新建 → 保存 - 勾选
保存时自动转换到以下格式,下拉选UNIX/OSX 格式 - 注意:粘贴进来的文本仍保留源格式,仍需手动触发
编辑 → EOL 转换 - 跨平台协作更稳的做法:在项目根目录加
.editorconfig,写明end_of_line = lf
换行符这事看着小,但一旦混在 .sh、JSON、Dockerfile 里,就可能让程序静默失败 —— 而 Notepad++ 不会报错,它只是忠实地写入你选的字节。











