回车、换行、回车换行、硬回车以及软回车

要想一句话说清楚它们之间的关系,不太简单。但认真看完后,会发现它们之间的关系其实也挺简单的。

回车、换行与回车换行

英文缩写 对应按键 英文全称 中文名称 解释 转义表达式 使用平台
CR return Carriage Return 回车(符) 将光标移至行首 \r1 Mac OS 早期版本
LF Enter Line Feed 换行(符) 将光标移至下一行 \n2 Unix, Linux, macOS3
CR+LF/CRLF Enter Carriage Return and Line Feed 回车换行(符) 将光标复位后转至下行 \r\n Windows & MS-DOS

简介

关于 Line feed4,我的理解是“行进”,轴滚而纸进之,是谓换行。也有人说这里的 feed 是“满”的意思。 除此之外,换行常见的英文表达还有:line feed,newline,end of line (EOL),line ending,line break。

“回车”这一说法的由来5,源于对英文词汇 Carriage Return 的直译。Carriage6 原意为“马车”,但在这里指的并不是“马车”,而是打字机上的一个构件,俗称“字车”。

起源

一切都还得从打字机说起。回车换行这一操作最早出现在传统的的打字设备中,例如,要在电传打印机7中另起一行,分为以下两步:

  1. 将 Carriage 复位,移至起始位置,即行首8
  2. 滚筒上卷,带动纸张向上移动一行的距离,以开启新的一行。

其中,第一步就是回车,第二部就是换行。

MS-DOS 借鉴了这一理念,将 CR+LF 作为系统默认的换行标志。后来的 Windows 也就顺理成章地继承了这一设定。
Unix 的前身 Multics 选择了 LF,Unix 后来也沿用了 Multics 的方案,Linux 亦从之。
唯有异教徒 Mac OS9 使用 CR 作为换行标志,但好在后来改邪归正,也加入了 *nix 阵营。
所以就形成了如今 LFCR+LF 二分天下的局面。

严格意义上来说,回车是回车,换行是换行,谁也不从属于谁。回车指的是跳回到行首,而换行指的是开启新的一行。本质上,换行和回车并不矛盾,它们只是两个相互配合共同发挥作用的按键。但是在 Windows 中,一个完整的“换行标志”应该包括回车符和换行符这两个部分。

也许你在 Microsoft® Word 中分别按下 Enter 和 ↵ 的时候,你会发现它们并没有什么区别。正是因为人们在换行的时候已经感受不到回车的存在了,所以人们才总是习惯于把回车和换行当作一回事。但请记住,这是错误的,尽管回车键和换行键在大多数场景下没有区别。

键位分布

在全尺寸的键盘上,Enter 和 return 是两个不同的按键,位于键盘主区的右侧中部的 ↵ 就是 return,位于小键盘最右下角的按键便是 Enter。


而在小尺寸键盘上,这两个键共用一个键来表示,由 Enter 字样和 符号两部分组合而成,分别代表 Enter 和 return。

特殊地,Apple MacBook 系列产品的键盘上一般只有 return,没有 Enter。

是什么原因导致了换行标志的差异性呢?

*nix 阵营用 LF 作为换行标志并不是无缘无故的,而是特殊历史背景10下的产物。在 16 位的系统中,1 字 = 2 字节 = 16 位,CR+LF 占用 4 个字,而单个 LF 只占 2 个字,在当时那个惜“字”如金的时代,节约每一个比特都是有必要的。所以 *nix 才做此决定。

如果文本中的换行标志不符合特定平台下的规定,那就不能被正确地识别,这种情况多发生在跨平台开发中。

例如,将在 Linux 环境中编辑的多行文本在 Windows 环境中用 记事本 程序打开,就会发现变成了原本的多行文字会变成单行文字,这就是因为 Windows 未能检测到有效的换行标志 CR+LF 而导致的问题。

硬回车与软回车

硬回车与软回车是排版系统中的概念,用以区分、标记段落层次。二者区别见下表。

按键 英文名称 中文名称 使用效果 通配符
Enter Hard return 硬回车 段落结束,另起一段 ^p
Shift + Enter Soft return 软回车 段落未完,转至下行 ^l

如下图所示,在 Microsoft® Word 每行的换行处,分别用 来表示软回车和硬回车。

题外话

  • 我对 Windows 存在很多偏见,比如它不完全遵循 POSIX 规范、不公开系统源代码11等,但不得不承认,以 Windows 为代表的 CR+LF 换行方式似乎更为科学(逻辑上),毕竟在早期的电传机里就能找到它的原型。

  • 原来的 macOS 还叫作 Mac OS X,但是在当时已有的 OS 里,例如 iOS 和 tvOS,都是以小写字母搭配 OS 来命名的。相比之下,Mac OS X 和 OS X 这种画风的命名就显得格格不入,一点都不符合 Apple 的风格。所以 Apple 决定将新版本的 OS 称作 macOS。所以就有了现在和谐统一的局面:iOS,watchOS,tvOS,macOS。
    (iPadOS 退出了直播间。)

  • 打字机不同于计算机。计算机的文字处理过程是非线性的,而打字机的文字处理过程是线性的,这意味着打字机中的出现的误操作通常是不可逆转的,一旦输错一个字符,很大程度上就意味着要重新编辑。后来,个人计算机的出现改变了这一局面,不仅如此,后来的音视频处理也实现了非线性化编辑,给依托磁带为载体的传统传媒业带来了巨大的影响,造福了广大媒体工作者。

参考资料:

Newline - Wikipedia

Teleprinter - Wikipedia

Vi Improved - Vim (PDF)

Hard Break (Return) vs. Soft Break (Shift+Enter) - PolicyStat Learning Center


  1. return ↩︎

  2. newline ↩︎

  3. 包括 OS X ↩︎

  4. feed 除了有“喂养”的含义外,还有“进入”和“供给”的意思。 ↩︎

  5. 巧合的是,在曾经红极一时的 GTA: VC 中,玩家回到车中对应的按键正是“回车”。 ↩︎

  6. 打字机滑架,托架 ↩︎

  7. 即 Teletype。在后文中,Teletype、typewriter、teletypewriter 或 teleprinter,皆统称为“打字机”,它们的区别不在本文的讨论范围内。 ↩︎

  8. 英文原文为“Colum one”,指该行第一列的位置 ↩︎

  9. 后来改名为 Mac OS X,又历经 OS X 最终演变为 macOS。 ↩︎

  10. 字符编码方案的制定可以追溯到二十世纪六十年代甚至更早,由于技术和经济条件上的限制,当时计算机的内存和储存并不像现在一样宽裕。计算机科学家和开发者们必须节省每一个字节,使得计算机资源的利用率达到最大值。
    字符编码方案的制定可以追溯到二十世纪六十年代甚至更早,由于技术和经济条件上的限制,当时计算机的内存和储存并不像现在一样宽裕。计算机科学家和开发者们必须节省每一个字节,使得计算机资源的利用率达到最大值。 ↩︎

  11. 开玩笑啦 ( ̄▽ ̄) ↩︎

回车、换行、回车换行、硬回车以及软回车相关推荐

  1. 硬回车与软回车[转]

    硬换行与软换行_拉砖的家伙_新浪博客 一.首先介绍一下硬换行和软换行 在Word中,换行符分两种:硬换行和软换行.硬换行也就是硬回车(弯曲的箭头),软换行也就是软回车(↓). 硬回车就是通常我们直接按 ...

  2. 去掉Word2007中的软回车(从网页粘贴文字的一些编辑)

    一  删除 Word2007中向下箭头的符号(软回车符号 shift+enter)     1.软回车替换成硬回车:点击菜单栏中的"开始"→"替换"(F5)  ...

  3. 替换word中手动换行(软回车)为段落标记(硬回车)

    在字处理软件中,由Enter键按下去导致一行文字换行的叫硬回车,程序自动换行的叫做软回车.软回车是用 Shift + Enter 产生的,它换行,但是并不换段,即前后两段文字在 Word 中属于同一& ...

  4. 关于换行以及换行属性

    对于CSS的white-space属性,我想大部分人应该和我差不多,最常用的就是nowrap属性,最多用来做超长省略号显示的时候会用到[hiahiahia~] 起因是这样的:产品doggie策划了一个 ...

  5. python 在Windows下 用软回车换行

    最近处理文件,发现有同事给我的文件里面的换行是软回车(在emeditor里面看是↓),而我自己写的文件是硬回车.好奇心就来了,我怎么能把文件里面的硬回车改成软回车呢?要知道硬回车占两个字节,软回车就占 ...

  6. word中硬回车(enter)与软回车(shift+enter)

    1.硬回车(enter) 表现:弯曲的小箭头 段落标记:^p 2.软回车(shift+enter) 向下的箭头 段落标记:^l         (注意为:它是^和小写的L) 它换行,但是并不换段

  7. word回车后间距太大_word编辑按回车换行上下间距好大怎么回事

    2016-08-12 17:45齐斯琴 客户经理 批量删除Word中回车的方法 (一)批量删除Word中回车的方法 有时候我们从网页上复制文章到Word中时,往往会带有好多向下箭头的符号,这就是软回车 ...

  8. word硬回车替换为软回车

    有时候我们从网页上复制一些文章到Word中时,往往会带有好多向下箭头的符号,这就是软回车符号(Word中软回车是同时按住 shift+enter得来的),这些软回车占用了Word很多的空间,那么如何才 ...

  9. Word中软回车和硬回车

    一.word中硬回车(enter)与软回车(shift+enter). 在两个硬回车之间的文字自成一个段落,可以对它单独设置段落标记而不用担心其他段落受到影响.这也是我们习惯用硬回车的原因:排版方便. ...

  10. word删除多余换行_批量删除Word中多余回车

    有时候我们从网页上复制一些文章到Word中时,往往会带有好多向下箭头的符号,这就是软回车符号(Word中软回车是同时按住shift+enter得来的), 这些软回车占用了Word很多的空间,那么如何才 ...

最新文章

  1. EMAIL发送系统(C#+基于SMTP认证) 2.0
  2. Appium定位方式总结
  3. Knox网关、网关简介、概述、支持的Apache Hadoop服务、支持的Apache Hadoop生态系统的UI、参考资料
  4. java ip地址相关操作
  5. 常用数据库连接和diriver以及默认端口
  6. ajax.actionlink使用问题
  7. 【飞秋怎么用】高速文件传输
  8. C语言islower函数介绍、示例和实现
  9. php pdo exec,PDO::exec
  10. 大数据入门教程系列之Hive篇汇总
  11. 【本科课程学习】数据库考试复习题(带答案)
  12. 华为畅享20plus能更鸿蒙不,甘南收购华为畅享20Plus尾插排线数据线耳机
  13. 【2019年01月18日】股息率分红最高排名
  14. RS-485详解(一)
  15. Python实现批量修改图片名称并存入新文件夹
  16. 苹果手机刷机显示无法联系软件更新服务器,为什么苹果手机无法自动更新软件怎么办...
  17. 第十届蓝桥杯真题题解
  18. 计算给定字符串中最长回文子串的长度(或查找最长回文子串)
  19. su - oracle和su oracle 的区别
  20. 通过Gartner 2018年新兴技术成熟度曲线解读大数据人工智能技术的发展

热门文章

  1. laravel-excel 中设置列宽,单元格内容垂直和水平都居中
  2. 用柯西定理证明泰勒公式的拉格朗日余项
  3. 现场总线与计算机网络的最大区别,现场总线与局域网的区别是什么
  4. android平板怎么快速截屏,平板怎样截图(iPad截屏的3种方式)
  5. 【已解决】您的PHP似乎没有安装运行WordPress所必需的MySQL扩展
  6. 高通apq8096连接外网
  7. AutoPatch java_AutoPatch 成功, 加载逻辑修复成功, 但 patch.jar 反编译异常
  8. centos7 wget无法解析主机域名的解决办法
  9. 1.工作汇报结构: 黄金圈法则结构、PREP结构、时间轴结构、金字塔结构
  10. java sqrt函数源码_Java sqrt源码解析