# Win11 下 WSL 换行符问题

先说一下最终的解决方案:

# 使用 WSL 强制创建 LF 格式文件

在 WSL 环境中运行以下命令,确保文件始终以 LF 格式保存:

echo 'export FILEFORMAT=unix' >> ~/.bashrc
source ~/.bashrc

操作完之后记得把之前的文件重新生成一遍。

# VScode 设置

设置 -> 用户设置 -> 文本编辑器 -> 文件 ->eol 选项设置为 \n

或者说只修改单个文件的话直接:

打开需要转换的文件,查看右下角状态栏的行尾符格式(CRLF 或 LF),点击行尾符,弹出选项框,选择 LF ,保存文件(Ctrl+S)。

# Git 自动转换

设置 Git 转换规则,配置 Git 仅在提交时将 CRLF 转换为 LF:

git config --global core.autocrlf input

这会在提交时将行尾符转换为 LF,但保留工作区文件的 CRLF。

如果需要工作区文件也统一为 LF:

git config --global core.autocrlf false

然后重新克隆代码库或运行以下命令刷新文件:

git rm --cached -r .
git reset --hard