prettier保存不自动格式化的根本原因是其他插件(如eslint、vetur)抢占了onsave格式化优先级,需在settings.json中明确指定"editor.defaultformatter": "esbenp.prettier-vscode"并配置语言专属设置,同时禁用冲突格式化选项。

插件不是越多越好,而是越少越稳——多数卡顿、冲突、保存失败问题,根源都在插件冗余或监听重叠。
为什么装了 Prettier 还是不自动格式化?
常见现象:装了 Prettier,也勾了 editor.formatOnSave,但保存 JS 文件时毫无反应。
- 根本原因不是插件没装好,而是有其他插件(比如
ESLint或Vetur)也注册了onSave格式化逻辑,且优先级更高,把Prettier的调用拦截或覆盖了 -
ESLint的eslint.format.enable默认为true,它会抢在Prettier前执行;Vue 项目里Vetur的vetur.format.options.useSemi等配置也会干扰 - 解决方式不是“禁用 ESLint”,而是统一交由
Prettier处理:在settings.json中明确指定格式化工具
示例配置(仅对 JavaScript/TypeScript 生效):
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"[javascript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[typescript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"prettier.requireConfig": false
}
Code Runner 编译输出乱码或找不到 exe?
尤其在 Windows 下写 C/C++,Code Runner 执行后终端显示方块、中文乱码,或提示 The system cannot find the file specified。
- 本质是编码不一致:VS Code 文件默认 UTF-8,而 Windows 终端(cmd/powershell)默认 GBK,
Code Runner直接调用终端执行,未做转码适配 - 输出路径硬编码错误:插件默认把
.exe放当前目录,但若项目结构含空格或中文路径,cd和g++命令会解析失败 - 推荐做法是绕过 cmd,改用 PowerShell 并显式指定编码
在 settings.json 中添加:
{
"code-runner.runInTerminal": true,
"code-runner.terminalRoot": "./build/",
"code-runner.executorMap": {
"cpp": "cd $dir && g++ -std=c++17 $fileName -o $dir\build\$fileNameWithoutExt.exe && $dir\build\$fileNameWithoutExt.exe"
}
}
注意:$dir\build\ 中的双反斜杠是 Windows 路径转义必需,单斜杠在 JSON 里会被解析为转义符。
Live Server 启动报 EADDRINUSE 或无法局域网访问?
点击右键 → “Open with Live Server” 后弹出错误 Error: listen EADDRINUSE: address already in use 127.0.0.1:5500,或手机连不上同一 WiFi 下的预览地址。
-
EADDRINUSE不代表端口真被占满,而是Live Server默认绑定127.0.0.1(本机回环),其他设备根本访问不到 - 即使改了端口,若防火墙或路由器限制,仍可能无法穿透;更隐蔽的问题是 VS Code 多窗口同时启用了 Live Server,互相抢占端口
- 关键配置项只有两个:
liveServer.settings.port和liveServer.settings.host,缺一不可
安全且可外网访问的最小配置:
{
"liveServer.settings.port": 0,
"liveServer.settings.host": "0.0.0.0",
"liveServer.settings.AdvanceCustomBrowserCmdLine": "chrome --incognito"
}
"port": 0 表示自动分配空闲端口,避免手动撞车;"host": "0.0.0.0" 允许所有网络接口监听,而非仅限本地。
GitLens 占用 CPU 高达 30%?
打开一个中型 Git 仓库(5k+ 提交),左侧 GitLens 视图加载缓慢,编辑器整体响应变迟钝,任务管理器里 git 进程持续高占用。
- GitLens 默认开启全部功能:提交图谱、代码作者标注、行级 blame、分支比较……这些全靠频繁调用
git log、git blame实现,I/O 密集且无缓存 - 最耗资源的是
git blame—— 它对每个文件每行都查历史,大文件或二进制变更会直接卡死 - 关闭非必要功能比卸载插件更有效:保留
GitLens: Enable GitLens,但关掉gitlens.codeLens.scopes和gitlens.views.fileHistory.enabled
精简后的关键开关(设为 false):
{
"gitlens.codeLens.enabled": false,
"gitlens.views.fileHistory.enabled": false,
"gitlens.views.commitGraph.enabled": false,
"gitlens.statusBar.lineBlameEnabled": false
}
留着 gitlens.views.repositories.enabled 就够日常查分支和提交——它只读 HEAD 和 reflog,几乎零开销。
真正影响体验的从来不是“缺哪个插件”,而是多个插件对同一事件(onSave、onDidOpenTextDocument、onDidChangeTextDocument)的重复监听和无协调执行。删掉三个插件,往往比加一个“性能优化插件”更管用。











