Vscode中的行尾序列CRLF/LF问题,及其引起的Delete ‘␍‘ 的报错问题

本人使用的是Windows系统,Unix/Linux/macOS系统也可参照此方法解决问题

报错如图:

(如果你只想解决报错的话直接下翻到解决方法,想了解原理的话请耐心看完)

在这之前,我们先来了解一下什么是行尾符(也叫换行符/行尾序列)。

行尾符是用于标记文本文件中一行结束的字符,不同的操作系统使用不同的行尾符:

  1. LF (\n)

    Unix/Linux/macOS:这些系统使用单个 LF 字符来表示行尾。
  2. CRLF (\r\n)

    Windows:这些系统使用两个字符 CR 和 LF 来表示行尾

图中报错通常是由于文件的行尾符不一致导致的,VSCode 提示你删除 ,即删除\r字符。

我用的是Windows系统,为什么他会提示我删除\r字符呢?前面不是说windows使用\r  \n 吗?

出现原因:

1.图中vscode提示是由于使用小皮(prettier)引起的报错,

打开设置,搜索” prettier “,找到 ” 指定 Prettier 使用的换行符 “,

如图:一般来说,Prettier的 都是默LF,导致报错,

将其改为crlf即可

2.在使用 Git 推送和拉取代码时,git将行尾符更改,导致代码报错

   Git 提供了几个配置选项来处理行尾符(EOL)的问题,确保在不同操作系统之间的一致性。以     下是这些配置选项及其作用:

  • core.autocrlf

    • true:在提交时将所有行尾符转换为 LF,在检出时将所有行尾符转换为 CRLF(适用于 Windows 用户)。
    • input:在提交时将所有行尾符转换为 LF,但在检出时不进行转换(适用于 Linux 和 macOS 用户)。
    • false:不进行任何转换(适用于 Linux 和 macOS 用户)。
  • core.eol

    • lf:设置存储库中的文件使用 LF 作为行尾符。
    • crlf:设置存储库中的文件使用 CRLF 作为行尾符。

可以通过以下命令检查当前的 Git 配置:

git config --get core.autocrlf
git config --get core.eol

推荐设置:

  •  对于 Windows 用户

        将 core.autocrlf 设置为 true:

git config --global core.autocrlf true
  • 对于 Linux 和 macOS 用户

        将 core.autocrlf 设置为 input

git config --global core.autocrlf input
  • 在项目中统一行尾符

        在项目根目录下创建一个 .gitattributes 文件,并添加以下内容:

        这个配置告诉 Git 将所有文本文件的行尾符统一为 LF(或CRLF,根据你的实际情况)

# .gitattributes
* text=auto eol=lf

3.当你在一个跨平台团队中工作,你在一个操作系统中创建或编辑文件,然后在另一个操作系统中打开时,可能会遇到这种不一致的问题

解决方法:

1.单文件直接转换(只能救急,治标不治本):

  • 在 VSCode 右下角的状态栏,可以看到文件当前使用的换行符格式,目前显示为 CRLF
  • 点击这个换行符指示,弹出一个选项菜单,选择 LF来替换文件中的 CRLF。
  • 此时保存文件,VSCode 会自动将所有的 ␍ 删除并转换为 LF 换行格式(但是只有该文件生效)。如图:

2.调整小皮的格式验证:

  • 打开设置,搜索” prettier “,找到” 指定 Prettier 使用的换行符 “,如图:
  • 一般来说,Prettier的 都是默LF,导致报错,将其改为  crlf  即可

3.全局设置行尾符

  • 打开 VSCode 设置(点击左下角的齿轮图标,然后选择 Settings)。
  • 搜索 files.eol
  • 设置 files.eol 为你希望的行尾符格式,例如:
    "files.eol": "\r\n"  // 对应 CRLF

4.在项目根目录下创建一个 .editorconfig 文件,并添加以下内容:

# .editorconfig
root = true

[*]
charset = utf-8
end_of_line = crlf
indent_style = space
indent_size = 2

这个配置告诉 VSCode 和其他支持 .editorconfig 的编辑器将所有文本文件的行尾符统一为 CRLF

  • 安装扩展插件来帮助管理行尾符,例如 EditorConfig for VS Code,它可以自动根据 .editorconfig 文件中的设置来调整文件的编码和行尾符。

如果以上内容对你有所帮助的话,麻烦给我点个赞,谢谢!

本文只是粗浅的论述了Vscode中的行尾序列CRLF/LF问题,

敬请斧正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值