windows系统批量转换CRLF和LF格式代码,解决eslint报错Delete `␍`解决‘unix2dos‘ is not recognized as an internal or extern

每天都要开心()哇:

在这里插入图片描述

最近写代码,工程配置为lf格式,但是拉取代码后,代码都变成了CRLF,于是满屏幕报错

  • 在做跨平台开发移植的时候,最常见的问题就是不同操作系统的换行不同(例如,Windows 上是 CRLF,而 Linux 上是 LF,MacOS 以前是 CR,现在也是 LF),如果不注意的话,可能会导致编译的时候报诡异的错误,我们新建的项目是LF格式,我们商定觉得,以LF格式为主
  • 使用git拉取代码的时候,git会自动将代码当中与你当前系统不同的换行方式转化成你当前系统的换行方式,从而造成这种冲突
  • 在解决项目问题之前,先配置一下这个:修改git全局配置,禁止git自动将lf转换成crlf
git config --global core.autocrlf false

解决方案如下:

  • 1.我们配置了.editorconfig
root = true

[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

  • 2.下载 UNIX2DOS工具
    点击下载

  • 3.解压到我们喜欢的路径下,比如我解压到这里C:\jin_env

  • 4.配置环境变量-把刚刚解压的那个路径写进去哦

  • 5.新开一个cmd 窗口, 输入path,看到我们设置的路径就代表着成功,试一把~

  • 6.开启我们的编辑器的自动保存功能-这个仅作为建议哦~~
    具体如何开启自动保存功能,我会在下一篇文章里写哇~~

  • 7.进入项目根文件,打开其路径下的cmd 窗口,根据你文件的格式,进行修改下面命令即可
    ps:建议不要包含node_modules文件

  • 将 CRLF 转为 LF; *.vue *.js表示匹配相应文件后缀;

for /R %G in (*.vue *.js *.ts *.svg *.json *.css *.scss) do dos2unix "%G" 
  • 将 LF 转为 CRLF
for /R %G in (*.vue *.js *.ts *.svg *.json *.css *.scss) do unix2dos "%G"

  • 如果遇到这个报错’unix2dos’ is not recognized as an internal or external command,operable program or batch file.那就是你没有安装配置好dos2unix
  • 8.大功告成

欢迎大家指出文章需要改正之处~
学无止境,合作共赢

在这里插入图片描述

欢迎路过的小哥哥小姐姐们提出更好的意见哇~~

### 回答1: WindowsUnix是两种不同的操作系统,它们在文本文件中使用的换行符也不同。Windows使用回车符和换行符(CRLF)作为换行符,而Unix使用换行符(LF)作为换行符。 在转换WindowsUnix文本文件时,需要将CRLF转换LF或将LF转换CRLF。可以使用文本编辑器或命令行工具来进行转换。 在文本编辑器中,可以使用“查找和替换”功能来进行转换。将“\r\n”替换为“\n”即可将CRLF转换LF,将“\n”替换为“\r\n”即可将LF转换CRLF。 在命令行中,可以使用“dos2unix”和“unix2dos”命令来进行转换。使用“dos2unix”命令将CRLF转换LF,使用“unix2dos”命令将LF转换CRLF。例如,将Windows文本文件转换Unix文本文件,可以使用以下命令: dos2unix file.txt 将Unix文本文件转换Windows文本文件,可以使用以下命令: unix2dos file.txt ### 回答2: 在计算机操作系统中,WindowsUnix是两种广泛使用的操作系统。在这两种操作系统中,文本文件的换行格式不同:Windows使用CRLF(回车符+换行符)作为换行符,而Unix使用LF(换行符)作为换行符。 因为操作系统的差异,两种换行符的使用会产生兼容性问题。当在Windows系统下编辑文本文件,保存时默认会使用CRLF换行符,但在Unix系统下打开该文件时会将CRLF视为两个字符,即CRLF,从而影响文本的排版和格式。 为了解决这个问题,需要将文本文件的换行符从Windows格式转换Unix格式,或者将Unix格式转换Windows格式。常用的工具有以下几种: 1. DOS2UNIXUNIX2DOS:这是两个Unix下的命令行工具,用于将文本文件从Windows格式转换Unix格式或将Unix格式转换Windows格式。使用方法如下: - 将Windows格式的文件转换Unix格式:dos2unix filename.txt - 将Unix格式的文件转换Windows 格式unix2dos filename.txt 2. Notepad++:这是一款文本编辑器,支持WindowsUnix格式的文本文件,可以通过菜单 “Edit”-> “EOL Conversion” 来将换行格式转换WindowsUnix格式。 3. Sublime Text:也是一款文本编辑器,支持WindowsUnix格式的文本文件,可以在菜单 "View"-> "Line Endings" 中设置将换行符转换WindowsUnix格式。 需要注意的是,如果文件较多,可以使用批量转换命令将每个文件的换行符都转换为需要的格式。另外,在Git等版本控制工具中,也可以设置换行符的处理方式,以避免由此产生的兼容性问题。 ### 回答3: 在WindowsUnix系统中,行结束符的表示方式不同,Windows使用的是CRLF(回车符+换行符),而Unix使用的是LF(换行符)。 当我们在Windows系统中编写文件时,每一行的结尾都会自动添加CRLF,但是在Unix系统中,如果我们将这个文件复制到Unix系统中,就会出现问题,因为Unix系统只能识别LF作为行结束符。 为了解决这个问题,我们可以通过转换文件的行结束符来实现不同系统间的文件共享。下面列举几种常见的方式: 1. 使用文本编辑器转换。许多文本编辑器都提供了转换行结束符的选项,可以使用这个选项来将CRLF转换LF或反之亦然。比如在Atom编辑器中,可以通过在底部栏中选择CRLFLF转换。 2. 使用命令行工具转换。在Unix系统中,可以使用sed命令来将CRLF转换LF,命令格式为: sed 's/\r$//' file.txt > newfile.txt 其中,\r为回车符,$表示行末。将源文件file.txt中的每一行行末的\r替换为空字符,然后将结果输出到新文件newfile.txt中。 在Windows系统中,可以使用PowerShell的Get-Content和Set-Content命令来转换行结束符,命令格式为: (Get-Content file.txt) -replace "`r`n", "`n" | Set-Content newfile.txt 其中,`r和`n分别表示回车符和换行符。先读取源文件file.txt,再通过-replace替换每行行末的\r\n为\n,最后将结果输出到新文件newfile.txt中。 3. 使用软件批量转换。有些软件可以批量转换文件的行结束符,比如Notepad++和WinMerge等。在Notepad++中,可以使用Edit->EOL Conversion菜单来转换,而在WinMerge中,可以使用Edit->Convert Line Endings菜单来转换。 总之,通过将行结束符进行转换,可以实现不同操作系统间的文件共享和兼容,提高文件的可移植性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值