为什么在 Windows > 8 上用 CR LF 保存文件?

Why save files with CR LF on Windows > 8?

我在 Windows 和 Linux 上开发和使用 Git。在 Windows 上使用 IDE 或 Git 时,系统经常提示我是否使用 CR LF 保存文件。

我主要从事 C# 和 JavaScript ES6 开发,其中涉及包含 multi-line strings 的代码。

在 Windows 上使用 CR LF 保存文件的原因是什么? CR-LF 主要是 historical significance 吗?我还没有注意到在 Windows 上使用 UNIX \n 行结尾的缺点。

有些 Windows 程序在没有 '\r' 的情况下无法正确处理 '\n' 但任何像样的编辑器或任何像样的程序都应该以相同的方式处理它们。但是 CRLF 传统上是在 Windows 上进行行结尾的认可方式,如果不这样做,您可能会遇到兼容性问题。

Windows 批处理文件在以换行符结尾保存时可能会出现故障,因为 goto 命令通过跳转到脚本中的适当偏移量来工作——但它无法正确计算,除非行以 carriage-return/line-feed 结尾.