Window&linux使用换行符的问题总结

时间:2025-03-04 16:37:35

1、Window使用Git时,设置换行符格式

参见:/p/6ef90ce18ba2

2、vi下设置回车换行符等特殊符号

换行方式:

在早期的打印机时代,开始新的一行要占用两个字符的时间。如果到了一行的结尾处,你要快速回到新的一行的开头,需要打印针头在纸面上飞快地掠过,常常会在纸面上留下污点。

解决这个问题的办法就是,用两个字符:一个字符<Return>来移到第一列,另一个字符<Line feed>来新增一行。计算机产生以后,存储较为昂贵,在如何解决回车换行这个老问题上,人们产生了不同的意见。

UNIX人认为在到达一行的结尾时新增一行<Line feed> (LF),而Mac人则认同<Return> (CR)的解决办法,MS则坚持古老的<Return><Line feed> (CRLF)的方法。这就意味着如果你将一个文件从一个系统转移到另一个系统,就面临着回车换行的问题。而Vim编辑器则会自动的认出这种文件格式方面的区别,并做出相应处理。

:set fileformats=unix,dos

unix文件格式作为第一选择,dos格式作为第二选择,尤其需要注意的是shell、python等脚本需要保存为unix格式,因为不然你在linux下直接运行时会提示:No such file or directory,因为Linux把换行符也当成脚本解释器的一部分了。

:set fileformat

查看文件格式

:set fileformat=unix/dos

设置(转换文件格式)

:set endofline/noendofline

设置文件末尾是否自动增加换行符

:set list/nolist

设置是否显示不可见字符,注意此选项受set listchars约束

:%s/\n//g

删除换行符

总结见如下表:

:set fileformat 设置文件格式
:set endofline 设置文件结束符
:set noendofline 取消文件结束符
:set list 进入List Mode
:set nolist 退出List Mode
:%s/\n//g 删除换行符
:set textwidth 设置行宽
:set textwidth 设置行边距
:join 合并多行
J 合并两行

参考链接:

vi下显示回车换行符等特殊符号