VSCode新建文件默认用LF需设"files.eol": "\n"并重启窗口,否则Windows下仍为CRLF;该设置仅影响未指定换行符的新文件,且易被工作区设置、.editorconfig或Git配置覆盖。

VSCode 新建文件默认用 CRLF(Windows)或 LF(macOS/Linux),但团队协作必须统一为 LF,否则 Git 会报 warning: CRLF will be replaced by LF,Prettier 会直接报错 Expected linebreaks to be 'LF' but found 'CRLF'。改设置不难,难在覆盖层级多、生效条件苛刻——不重启窗口、不检查覆盖源、不配 Git,90% 的人改了也白改。
怎么让新建文件一打开就是 LF
核心是设 files.eol 为 "\n",但仅此不够:
- 打开设置(
Ctrl+,或Cmd+,),搜files.eol→ 点 “Edit in settings.json” - 添加或修改这一行:
"files.eol": "\n"(注意:是带英文双引号的字符串"\n",不是文字 “LF”) - 保存后必须执行
Ctrl+Shift+P→ 输入Developer: Reload Window重载窗口,否则新建文件仍沿用旧行为 - 该设置只影响“未指定换行符”的新文件(如新建空
.js、.py),已有文件不会被自动转换
为什么改了 settings.json 还是 CRLF
VSCode 换行符配置有明确优先级:工作区设置 > 用户设置 > 默认值。常见覆盖源有三个:
- 项目根目录存在
.vscode/settings.json,里面写了"files.eol": "\r\n" - 你打开了多根工作区(
.code-workspace),其配置里显式设了files.eol - 装了 EditorConfig 插件,且项目有
.editorconfig,其中end_of_line = crlf会强行接管
验证方法:按 Ctrl+Shift+P 输入 Preferences: Open Settings (JSON),确认看到的是你编辑的那个 JSON;再看右下角状态栏显示——如果新建文件仍是 CRLF,说明上面某一层生效了。
部署一个包含 4 个智能体(agent)的数字孪生平台。在以下情况下使用该技能: 1. 用户希望为物理资产监控与预测性维护等场景搭建数字孪生系统……
怎么临时切换单个文件的换行符
这是最常用、最即时的操作,不依赖任何配置:
- 打开任意文本文件,右下角状态栏显示
CRLF或LF - 点击它 → 选
LF→ 编辑器立刻重绘所有换行(无需保存就可见效果) - 必须手动
Ctrl+S才真正写入磁盘;否则关掉再打开,还是原格式 - 大文件(>50MB)点一下可能没反应——VSCode 会跳过处理,避免卡死
Git 和 VSCode 必须配合才真正稳
只改 VSCode 设置,解决不了协作场景的根本问题。Git 会在提交/检出时偷偷改换行符,导致本地文件和暂存区不一致:
- 在项目根目录加
.gitattributes,内容写:* text=auto eol=lf - 执行
git config --global core.autocrlf false(Windows 上若确定全用 LF) - 已有混合换行文件,运行
git add --renormalize .再git commit,Git 会按规则重写索引中的换行符
最关键的一点:VSCode 的 files.eol 和 Git 的 .gitattributes 必须对齐,否则一个写 LF,一个检出变 CRLF,编辑器右下角会反复闪烁,根本没法干活。

















