📌  相关文章
📜  VS 代码中所有文件中的 crlf 到 lf - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:48:21.759000             🧑  作者: Mango

VS Code中所有文件中的CRLF转换为LF - Shell/Bash

在开发过程中,我们可能需要协作编写代码,而不同的操作系统有不同的行结束符(line ending),Windows下一般使用CRLF(\r\n),而类UNIX操作系统下一般使用LF(\n)。因此,在协作过程中,CRLF和LF的混用可能会出现问题,例如Git的diff操作可能会显示一些不必要的更改。

在VS Code中,我们可以使用内置的功能将所有文件中的CRLF转换为LF,从而避免CRLF和LF的混用问题。本文将向您介绍如何使用Shell/Bash脚本在VS Code中将所有文件中的CRLF转换为LF。

准备工作

在使用脚本之前,您需要在本地安装Git,并且将Git Bash添加到您的环境变量中。您可以从Git官网下载安装器:https://git-scm.com/downloads

脚本

脚本如下:

#!/bin/bash

# Convert all CRLF to LF
find . -type f -exec dos2unix {} \;

# Remove BOM (Byte Order Mark) from all files
find . -type f -exec sed -i '1s/^\xEF\xBB\xBF//' {} \;

在脚本中,我们使用了find命令来查找当前目录及其子目录下的所有文件,使用dos2unix命令将CRLF转换为LF,使用sed命令将文件中的BOM(Byte Order Mark)去掉。BOM是在Windows中的Unicode编码文件中出现的3字节标记,它表示该文件是UTF-8编码,但是却会影响到其他类UNIX系统的应用程序的处理。

脚本使用方法:

  1. 将脚本保存为CRLF2LF.sh文件,放在您的VS Code项目根目录下。
  2. 在Git Bash中进入到您的项目根目录。
  3. 运行命令:bash CRLF2LF.sh
总结

本文介绍了如何使用Shell/Bash脚本在VS Code中将所有文件中的CRLF转换为LF,并且去掉BOM。使用脚本可以避免手动一个个文件或使用第三方工具进行转换,极大地提高了效率。