Windows和Linux的换行符CRLF/LF(\r\n,\n)简介 |
您所在的位置:网站首页 › git上传下载换行符自动转换吗 › Windows和Linux的换行符CRLF/LF(\r\n,\n)简介 |
问题:
有的时候, 我们把一个在windows上修改过的文件拿到linux上用vim打开之后,每行末尾会出现多余的字符 "^M",这是怎么回事呢? CR是Carriage-Return的缩写,即回车; LF是Line-Feed的缩写,即换行。 CR和LF是在计算机终端还是电传打印机的时候遗留下来的东西。电传打字机就像普通打字机一样工作。 在每一行的末端,CR命令让打印头回到左边。LF命令让纸前进一行。 虽然使用卷纸的终端时代已经过去了,但是,CR和LF命令依然存在,许多应用程序和网络协议仍使用这些命令作为分隔符。 Linux(unix) 和 mac 默认使用 "\n" 作为换行符; Windows 默认使用 "\r\n" 作为换行符; 2.Unix(Linux)的换行符Linux 下换行符是 "\n"。 "\n" 在 ACSII表中 对应 LF , ACSII值为 10 ,即0x0a (16进制) 3.windows下换行符 windows 下换行符是 "\r\n"。 "\r" 在ACSII表中对应 "CR", ACSII值为 13 ,即0x0d (16进制) 。 "\r" 在vim中被解释为 "^M" 。 4. unix/windows格式换行符转换 4.1 在linux上可以使用以下工具进行转换 dos2unix : 将windows风格换行符转换为unix风格换行符unix2dos: 将unix风格换行符转换为windows风格换行符下载windows版本的 dos2unix/unix2dos, dos2unix - Browse /dos2unix/7.5.1 at SourceForge.net 使用方法参考dos2unix工具中 dos2unix-7.5.1-win64-nls/share/doc/dos2unix-7.5.1/dos2unix.htm example 和 RECURSIVE CONVERSION 章节 (见附录2) 4.2.2 在windows上常用的代码编辑器一般都支持CRLF和LF的转换比如说 VsCode, 在右下角可以选择 LF 或者CRLF; 其他编辑器的操作大同小异。 需要默认设置的话, 在设置里修改 core.autocrlf 选项有三个可选值: true : 提交时改成LF,检出时改成CRLFfalse (默认值): 提交时是什么就是什么,不改换行符,检出时也不改input: 提交时改成LF,检出时不改 5.2 core.eolcore.eol 选项用于指定文件的行尾样式 lf :使用 LF 作为行尾样式。crlf:使用 CRLF 作为行尾样式。native (默认值):使用操作系统的默认行尾样式。 5.3 core.safecrlfcore.safecrlf 选项用于防止混合换行符的错误。它有三个可选值: false: 关闭检查,允许混合换行符的错误。warn (默认值):开启检查,并在发现混合换行符的错误时打印警告信息。true:开启检查,并在发现混合换行符的错误时打印错误信息并拒绝提交。 5.4 git配置建议一些查看git配置的命令 # 查看 git config 配置 git config -l # 查看 git config 配置具体位置 git config --list --show-origin # 全局配置 git config --global core.autocrlf true5.4.1 开发环境:windows 代码编译/运行环境: windows 建议配置 : core.autocrlf = true 5.4.2 开发环境:windows 代码编译/运行环境: Linux / Mac 建议配置 : core.autocrlf = input 5.4.3 开发环境:Linux / Mac 代码编译/运行环境: Linux / Mac 建议配置 : core.autocrlf = false (保持默认配置) 5.4.4 开发环境:Linux / Mac 代码编译/运行环境: Windows 建议配置 : core.autocrlf = true 个人配置是保持默认配置, 个人工作情况是: 99%概率在linux提交,运行在linux的代码; 有极小概率可能在linux上提交bat脚本; 因此保持默认配置。 针对在linux环境提交的bat脚本,手动转换为 CRLF格式。 附录1. ASCII 码表CRLF_百度百科 百度百科-CRLF 【git系列4/4】如何设置core.autocrlf | core.safecrlf (配置值的含义及最佳实践) 【git系列4/4】如何设置core.autocrlf | core.safecrlf (配置值的含义及最佳实践)-CSDN博客 Git 自动换行符 (autocrlf) 输入是将换行符从 LF 转换为 CRLF 吗 Git 自动换行符 (autocrlf) 输入是将换行符从 LF 转换为 CRLF 吗|极客笔记 Shell脚本中^M的问题和解决方案 Shell脚本中^M的问题和解决方案-CSDN博客 Sourceforge-dos2unix https://sourceforge.net/projects/dos2unix |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |