【问题标题】:Rationale of choosing difference new line representation by Unix, Mac, DOS/Windows?Unix、Mac、DOS/Windows 选择不同换行表示的理由?
【发布时间】:2010-01-19 00:02:49
【问题描述】:
有谁知道不同平台选择不同但在某种程度上相似的新线表示的原始理由或故事?最初必须做出一些设计决策。 (我不相信这都是随机选择...)
- Unix/Mac OS X:LF (\n)
- Mac OS 9 及之前版本:CR (\r)
- DOS/Windows:CRLF (\r\n)
【问题讨论】:
标签:
text
text-editor
history
newline
【解决方案1】:
Jeff Atwood 在"The Great Newline Schism" 上就这个话题发帖
维基百科涵盖了history of newline。
简而言之,CR+LF 是对电动打字机时代的参考,您首先使用回车将光标向左移动,然后使用换行符向下移动一行。您有时会只使用其中一种来书写特殊字符,例如下划线或删除线。
CRLF
计算机采用此命名法是因为它对于与teletype 机器交互很有用。这就是 MS-DOS 和随后的 Windows 使用 CRLF 的原因。
LF
显然,Multics 和随后的 Unix 从 1963-64 年的 ISO 标准草案中得到了启发,该草案表明 CRLF 或 LF 都可以表示换行符,并使用单个 LF 字符。
CR
对于苹果采用 CR 的历史,我还是有点疑惑。我正在调查它...
到目前为止,我最好的猜测是,这是由于苹果早期区分enter and return keys。在早期,回车键映射到回车,回车键映射到换行符,而不是像 Windows 世界中那样具有双重功能的单个“回车”键。对于经常使用回车符进行特殊格式设置的打字机用户来说,将两者分开可能是有意义的,而实际上苹果确实使用回车键进行特殊格式设置选项。
我不太确定的是,当他们放弃这一点时,他们决定只使用 CR,但我的猜测是早期决定使用 CR 作为返回键......但我可能错了.
【解决方案2】:
嗯,\r\n 是回车然后换行,这与打字机上用于从左列开始新行的键序列相同。