当前位置: 首页 > news >正文

Vscode中的行尾序列CRLF/LF不兼容问题

最近开发的的时候,打开项目文件经常会出现爆红错误提示信息,显示如下图:

这东西太烦人了,毕竟谁都不希望在遍地都是爆红的代码里写东西,就像能解决这个问题,根据提示可以知道这是vscode中使用的prettier插件导致的,prettier插件常被用在vscode的代码格式化上,于是乎临时就想到了两种思路来解决这个问题:

  • 解决格式问题:根据prettier要求修改格式
  • 过滤格式问题:修改prettier格式要求

解决格式问题

解决问题之前先来了解下问题产生的原因,这是由于不同操作系统上使用的换行符不一致,在 Windows 操作系统中使用的换行符通常是回车换行符 \r\n (CRLF),而LinuxUnix使用简单换行 符 \n (LF)prettier为了保证环境的一致性所设置的配置。我们要是像保持这项规则,也很简单,将文件的CRLF切换为LF就可以。

1、单文件切换

VSCODE底部提供一个行尾序列切换的功能,直接切换就行,但这种方法有个问题就是,单次只能切换一个文件,操作比较费事。

2、git配置

git有一个autocrlf配置功能,我们可以通过如下配置:

git config --global core.autocrlf false

它的作用是告诉Git在检出代码时不要自动将行尾转换为CRLF(Windows风格的换行符),而是保留原来的LF(Unix风格的换行符)。取值类型如下:

  • true:在检出代码时自动将行尾转换为CRLF,在提交代码时自动将行尾转换为LF。
  • input:在检出代码时不自动转换行尾,在提交代码时自动将行尾转换为LF
  • false:在检出和提交代码时都不自动转换行尾。

由于git安装默认会将 core.autocrlf设置为true,这样就会导致当我们使用clone将代码拉下来后换行符自动由LF转为CRLF,我们只需要将这个配置关掉,然后重写通过clone拉下来换行符就不会变为CRLF了(由于上传的时候会自动转为LF所以也不用担心仓库的行尾序列类型)。

过滤格式问题

上面的方式是通过修改格式来适配prettier,但换个思路我们也可以反其道而行,若实在是不喜欢这种方式,不考虑系统换行符的兼容问题,我们也可以直接考虑修改prettier或者eslint的配置信息彻底解决换行符问题【有关prettiereslint的关系请参考prettier/prettier】。

直接打开VSCODE的设置搜索prettier,修改prettier设置如下:

end of line修改为auto即可:

http://www.lryc.cn/news/382429.html

相关文章:

  • 常见加密方式:MD5、DES/AES、RSA、Base64
  • 如何在 C++/Qt/CMake 项目中构建 Rust 代码
  • 封装了一个优雅的iOS转场动画
  • 数据中心技术:大数据时代的机遇与挑战
  • 29、架构-技术方法论之向微服务迈进
  • 点云处理实操 1. 求解点云法向
  • XSS+CSRF组合拳
  • PasteSpiderFile文件同步管理端使用说明(V24.6.21.1)
  • NLP中两种不同的中文分词形式,jieba和spaCy
  • 【数据库】四、数据库编程(SQL编程)
  • 17.RedHat认证-Ansible自动化运维(下)
  • React Suspense的原理
  • React的生命周期函数详解
  • DoubleSummaryStatistics 及其相关类之-简介
  • java线程间的通信 - join 和 ThreadLocal
  • 差分GPS原理
  • 【栈与队列】前k个高频元素
  • B端产品竞品分析-总结版
  • 刷代码随想录有感(116):动态规划——单词拆分
  • CSS-0_1 CSS和层叠(样式优先级、内联样式、选择器 用户代理样式)
  • 科技赋能冷链园区:可视化带来全新体验
  • 高通安卓12-安卓系统定制2
  • 高中数学:数列-解数列不等式问题的常用放缩技巧(重难点)
  • [图解]企业应用架构模式2024新译本讲解17-活动记录1
  • [C++深入] --- malloc/free和new/delete
  • Spcok测试代码抛异常场景
  • 【漏洞复现】脸爱云一脸通智慧管理平台 SystemMng 管理用户信息泄露漏洞(XVE-2024-9382)
  • 新手如何入门Web3?
  • React.FC`<ChildComponentProps>`解释
  • 2024-06-24力扣每日一题