本文参考自: http://www.yulongjun.com/linux/20170518-08-lf-cr/
我们打开Visual Studio Code
编辑器,可以看到右下角有这个LF
,这是VS Code的默认行尾序列的符号:
点开后,我们可以到,有两种模式可选,LF
,CRLF
:
为什么是这样呢,这两种模式有什么区别呢?
在Linux下,默认换行的话,是LF
模式,见下图两个红框部分:
Linux下创建的LinuxFIle
文件,用Linux的编辑器在里面写了三行文本。然后我用Python显示出转义符,可以看到是\n
,这里的\n
就是指的是换行符(LF
)
然后我们在Windows下用记事本,写一个文件WindowsFile.txt
,然后上转到Linux上去同样的方法查看。可以看到是\r\n
,\r
指的就是回车(CR
),\r\n
连起来就是回车换行(CRLF
)
也就是说:在Linux里编辑文件,一行结束后跟的是\n
;在Windows里用自带的记事本编辑文件,一行结束后跟的是\r\n
tips:在Windows下有很多编辑器,是默认支持LF的方式,如
Visual Studio Code
、Sublime Text
、Notepadd++
,而且默认的编码格式是UTF-8
,所以,大家在Windows下写Linux脚本,或打开Linux下的文件,可以用上面的编辑器,而不要用Windows自带的记事本。
CR
和LF
是缩写,其实他们的全称分别是:Carriage-Return
和Line-Feed
。追本溯源的说,CR
(Carriage-Return
)和LF
(Line-Feed
)这两个词来源于打字机的发明和使用。
打字机的纸张向下卷动一行,就是换行(LF
, Line-Feed
)
将打印头从最右边归位到最左边,就是回车(CR
, Carriage-Return
)
如果把一个Windows记事本建立的文档,放到Linux里用的话,要用dos2unix
来转换一下后,再使用。当然最好的方法还是用专门的编辑器,不要用记事本。