Notepad++右下角显示“Windows (CR LF)”表示文件行尾使用CRLF格式;应通过“编辑→EOL转换”安全切换,避免查找替换误操作;Git用户需配置core.autocrlf或.gitattributes统一换行符规范。

Notepad++右下角显示“Windows (CR LF)”意味着什么
它不是提示,而是事实陈述:当前文件每一行结尾都存着 \r\n 两个字节。Linux 系统读取时会把 \r 当作普通字符处理,导致脚本执行报错(比如 : No such file or directory),或在 vi 里看到行尾的 ^M。
用菜单操作转换比查找替换安全得多
很多人想用“查找替换”把 \r\n 换成 \n,但容易踩坑:
- 正则模式下误开“匹配换行符”,可能批量删掉空行或破坏内容结构
- 手动输入
\r\n或\n时,Notepad++ 默认不识别转义,实际替换了字面字符串"\r\n" - 二进制文件(如带
\0的日志)被误操作后可能损坏
正确做法是走原生路径:编辑 → EOL 转换 → Unix (LF)(转 Linux)或 Windows (CRLF)(转 Windows)。这个功能直接重写行尾字节,不触碰正文,也不依赖编码解析。
Git 用户改完换行符仍被标为“已修改”怎么办
这不是 Notepad++ 的问题,而是 Git 的 core.autocrlf 在起作用:
- Windows 上默认开启
core.autocrlf=true:检出时自动转CRLF,提交时转回LF - 你用 Notepad++ 手动转成
LF后保存,Git 认为“这本该是 CRLF,你却改了”,所以标记为修改 - 如果项目根目录有
.gitattributes文件且含* text=auto,行为更隐蔽——下次git checkout可能又悄悄把你刚改的LF覆盖回CRLF
建议:要么统一关掉 Git 自动转换(git config --global core.autocrlf false),要么让团队共用 .gitattributes 显式声明哪些文件必须用 LF(如 *.sh text eol=lf)。
大文件(>10MB)转换前先另存为新文件
Notepad++ 对超大文本的内存管理偏保守,直接在原文件上做 EOL 转换偶尔会卡死或丢失未保存内容:
- 先
文件 → 另存为一个临时名(如script.sh.unix) - 再对新文件执行
EOL 转换 → Unix (LF) - 确认右下角显示
Unix (LF)后,再手动覆盖原文件
尤其当文件含大量注释、JSON 或 Base64 内容时,状态栏显示的格式未必反映全文真实字节——最稳的方式永远是用 xxd -l 32 filename(Linux)或 PowerShell 的 Get-Content -Encoding Byte -TotalCount 32 查看开头几个换行符的实际字节。


















