windows默认换行符为crlf(\r\n),macos和linux默认为lf(\n);vscode默认跟随系统,但跨平台协作需统一设为lf,通过用户级settings.json配置"files.eol": "\n"并重载窗口生效,且易被工作区设置、.editorconfig或git配置覆盖。

Windows/macOS/Linux 默认换行符分别是啥
VSCode 不是自己决定换行符,而是默认跟随操作系统:Windows 用 CRLF(\r\n),macOS 和 Linux 用 LF(\n)。这本身没问题,但一旦跨平台协作或 Git 提交,就容易出问题——比如你在 Windows 上新建一个 .js 文件,它默认就是 CRLF;别人在 macOS 上拉下来,Prettier 可能立刻报错 Expected linebreaks to be 'LF' but found 'CRLF'。
为什么改了 files.eol 还是 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,说明上面某一层生效了。
本文档主要讲述的是Android 操作系统的介绍;Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统,早期由Google开发,后由开放手持设备联盟(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以Java编写。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
怎么让新建文件一打开就是 LF
核心是设 "files.eol": "\n",但仅此不够:
- 打开设置(
Ctrl+,),搜files.eol→ 点“Edit in settings.json” - 添加或修改这一行:
"files.eol": "\n"(注意:是带英文双引号的字符串"\n",不是文字 “LF”) - 保存后必须执行
Ctrl+Shift+P→ 输入Developer: Reload Window重载窗口,否则新建文件仍沿用旧行为 - 该设置只影响“未指定换行符”的新文件(如新建空
.py、.ts),已有文件不会被自动转换
Git 和 VSCode 必须配合才真正稳
只改 VSCode 设置,解决不了协作场景的根本问题。Git 会在提交/检出时偷偷改换行符,导致本地文件和暂存区不一致。真正靠谱的做法是:
- 在项目根目录加
.gitattributes,内容写:* text=auto eol=lf - VSCode 设置里把
files.preferredLineEnding设为lf(不是"\n",是字符串lf)——这个值会优先读取.gitattributes - 已有文件批量转:运行
git add --renormalize .,再git commit,Git 会按规则重写索引中的换行符
最易被忽略的一点:即使所有配置都对了,如果你没关掉 EditorConfig 插件或没删掉旧的 .editorconfig,它仍可能强行覆盖 end_of_line 规则——得手动检查并清理。










