【问题标题】:Why save files with CR LF on Windows > 8?为什么在 Windows > 8 上使用 CR LF 保存文件?
【发布时间】:2016-05-20 23:44:45
【问题描述】:

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

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

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

【问题讨论】:

  • CR+LF 是正确的方式,LF 只是 Unix 继承的一个懒惰的捷径。除非有理由不这样做(比如使用 Linux 脚本),通常最好始终使用 CR+LF。

标签: linux windows git line-endings


【解决方案1】:

Windows 批处理文件在以换行符结尾保存时可能会出现故障,因为 goto 命令通过跳转到脚本中的适当偏移量来工作 - 但除非行以回车符/换行符结尾,否则计算不正确。

【讨论】:

  • 这就是我正在寻找的答案,比“它取决于”更具体
【解决方案2】:

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

【讨论】:

  • 能否请您更具体地说明可能存在兼容性问题的地方,例如使用哪些特定程序,传统的或非的。
  • 例如,Notepad.exe 在 Windows XP 上不处理 UNIX 行结束符。
  • 我的问题已经过编辑,以更具体地说明我打算提出问题的 Windows 版本。您是否发现 Windows >= 8.1 上的 UNIX 结尾有任何兼容性问题?
  • 我真的认为这取决于情况。如果您在 Windows 上编写 .txt 文件,我会使用 CRLF 来保证安全。否则,请使用适用于您所写内容的任何文件格式规范。
猜你喜欢
  • 1970-01-01
  • 2013-06-26
  • 2020-09-24
  • 1970-01-01
  • 1970-01-01
  • 2014-11-19
  • 2011-03-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多