首页 > 其他分享 >回车与换行的区别。CR、LF、CRLF的区别`\r` `\n` `\r\n`

回车与换行的区别。CR、LF、CRLF的区别`\r` `\n` `\r\n`

时间:2024-09-15 16:25:15浏览次数:8  
标签:LF 区别 换行 CRLF CR 换行符 回车

回车与换行的区别。CR、LF、CRLF的区别\r \n \r\n

大部分场景的编辑器都能抹平换行符的差异,但是问题存在终归是存在,做开发的大概率遇到过换行的问题。

现在来了解一下回车与换行。

对比结论

中文 英文 英文缩写 ASCⅡ转义 ASCⅡ值 系统
回车Carriage ReturnCR\r13MacIntosh(早期的Mac)
换行LinefeedLF\n10Unix/Linux/Mac OS X(现在的Mac)
回车并换行CRLF\r\nWindows

在这里插入图片描述

历史详解

很长一段时间里,对于CRLF、CR、LF的理解仅限于不同操作系统下对换行符的定义。

所谓知其然需知其所以然,从学习中找到乐趣,对知识的记忆才会更加深刻。

据野史记载,在很久以前的机械打字机时代,CR和LF分别具有不同的作用:LF会将打印纸张上移一行位置,但是保持当前打字的水平位置不变;CR则会将“Carriage”(打字机上的滚动托架)滚回到打印纸张的最左侧,但是保持当前打字的垂直位置不变,即还是在同一行。

当CR和LF组合使用时,则会将打印纸张上移一行,且下一个打字位置将回到该行的最左侧,也就是我们今天所理解的换行操作。

随着时间的推移,机械打字机渐渐地退出了历史舞台,当初的纸张变成了今天的显示器,打字机的按键也演变为了如今的键盘。

在操作系统出现的年代,受限于内存和软盘空间的不足,一些操作系统的设计者决定采用单个字符来表示换行符,如Unix的LF、MacIntosh的CR。他们的意图都是为了进行换行操作,只是当初并没有一个国际标准(或者其他原因,鬼知道),所以才有这样字符上的不同。

注意

  • 在linux的脚本要看换行是否是LF,否则导致不可预知的错误,也找不到原因。浪费很长时间。
  • 在Window有些编辑器自动改为CRLF,有些自动改为LF,反复打开给你反复修改。不过一般的编辑器都给你提供了设置默认换行符的设置,可以自行设置一下。

修改换行符示例

Nodepad++*

在这里插入图片描述

Jetbrains开发工具

IDEA、WebStorm、Goland等都一样。
在这里插入图片描述

这里可以改单个文件的换行符。

下面这个设置能改默认换行符:
在这里插入图片描述

推荐阅读

相关文章

  • Nacos与Eureka的区别:深入解析微服务中的服务注册与发现
    在微服务架构中,服务注册与发现是确保各个服务之间高效通信与协调的重要机制。随着云原生应用的快速发展,服务治理的需求也在不断增长。在这一背景下,Nacos和Eureka作为两种主流的服务注册与发现工具,各具特色和优势。本文将深入分析Nacos与Eureka之间的区别,帮助开发者选择最适合自......
  • Cortex-A7:__disable_irq和GIC_DisableIRQ、__enable_irq和GIC_EnableIRQ的区别(2)——AP
    0相关资料ARM®GenericInterruptControllerArchitectureversion2.0.pdf1API测试对比1.1__disable_irq同时GIC_DisableIRQ验证程序如下:voidgic_test(void){__disable_irq();GIC_DisableIRQ(UART4_IRQn);}测试结果:所有中断都无法响应。1.2_......
  • \r,\n,\r\n的区别
    回车和换行来源回车”(CarriageReturn)和“换行”(LineFeed)在计算机还没有出现之前,有一种叫做电传打字机(TeletypeModel33)的玩意儿,每秒钟可以打10个字符。但它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符......
  • OpenAI的ChatGPT各个模型有什么区别?
    ChatGPT版本历史/区别特点对比以下是OpenAI 公司ChatGPT 各主要模型版本的详细描述,说明了每个版本中的显著变化:GPT-3.5发布日期:2022年11月描述:GPT-3.5是第一个用于ChatGPT的版本,基于GPT-3.5模型。此版本在准确性和理解能力上有所提升,但仍在GPT-3的基础......
  • [Vue] computed、watch 和 watchEffect 的区别
    前言当依赖的数据发生改变,computed、watch和watchEffect都会被触发。但是它们之间又有自己的特点,使用场景也不一样。关于computed是什么,以及它和普通函数的区别、运用场景,查看我的另一篇博文:[Vue]computed和普通函数的区别。特性watchwatchEffectcomputed......
  • slice 和 splice 的区别
    slice和splice是JavaScript中用于操作数组的两个方法,但它们在功能和行为上有显著的区别。让我们分别来看它们的定义和区别。1.slice()定义:slice()方法用于返回数组的一部分,不修改原数组。参数:slice(start,end),返回从索引start到索引end(不包括end)的数组元素。......
  • java-----instanceof与getClass的区别
    java-----instanceof与getClass的区别在比较一个类是否和另一个类属于同一个类实例的时候,我们通常可以采用instanceof和getClass两种方法通过两者是否相等来判断,但是两者在判断上面是有差别的,下面从代码中看看区别:publicclassTest{ publicstaticvoidtestInstanceof(Obj......
  • self-play RL学习笔记
    让AI用随机的路径尝试新的任务,如果效果超预期,那就更新神经网络的权重,使得AI记住多使用这个成功的事件,再开始下一次的尝试。——llyaSutskever这两天炸裂朋友圈的OpenAI草莓大模型o1和此前代码能力大幅升级的Claude3.5,业内都猜测经过了自博弈强化学习(self-playRL)。1......
  • 云服务器和物理服务器的区别在哪
    在当今数字化的时代,服务器在企业和个人的信息技术架构中扮演着至关重要的角色。其中,云服务器和物理服务器是两种主要的服务器类型,它们在多个方面存在着明显的区别。一、硬件方面物理服务器是实实在在的物理硬件设备,它由机箱、主板、CPU、内存、硬盘等组件构成。用户拥有对物理服......
  • commit@push 与 commit@sysc 有什么区别和联系
    commit@push和commit@sync是Git操作中的两种不同命令组合或工作流,虽然两者都涉及commit操作,但它们的目标和执行操作有些不同。下面解释它们的区别和联系:1.commit@push含义:指的是先进行gitcommit提交,然后使用gitpush将本地的提交推送到远程仓库。流程:commit......