vscode中java配置项如java.format.ontype仅支持工作区级,用户级设置会被忽略;真正生效的java全局配置仅有java.home等少数几项,其余须写入项目.vscode/settings.json。

为什么改了用户级 settings.json 的 java.format.onType 没反应?
因为该配置项被 VSCode 和 redhat.java 扩展联合限制为仅工作区级(workspace)。你在用户级 settings.json 里写它,VSCode 解析时直接忽略,不报错也不警告。
- 验证方法:打开命令面板(
Ctrl+Shift+P),输入Preferences: Open Settings (JSON),看右侧是否显示“User”标签;再搜索java.format.onType,如果右边图标只有齿轮 ⚙️、没有文件夹图标 ?,就说明它不支持用户级 - 真正能用在用户级的 Java 相关配置极少,目前明确支持的只有:
java.home、java.configuration.runtimes、java.errors.incompleteClasspath.severity - 想让格式化、自动导入、构建配置等生效,必须把它们写进项目根目录下的
.vscode/settings.json,且要以文件夹方式打开项目(状态栏显示Folder: xxx)
search.useIgnoreFiles 关闭后全局搜索才可能完整
默认开启时,VSCode 会读取 .gitignore、.ignore 甚至 .prettierignore,并跳过其中列出的所有路径——哪怕你只是想搜一句中文日志,它也可能被整层过滤掉。
- 临时验证:打开设置 UI,搜
use ignore files,把 User 和 Workspace 两级都设为false,重启 VSCode 再试搜索 - 长期方案:不要全局关掉,而是精准控制范围——在全局搜索面板下方的
files to include输入框填**/*,-**/node_modules/**,-**/dist/**(注意无空格、逗号分隔) - 特别注意:
files to include优先级高于search.exclude;如果这里填了**/*.ts,那.js文件里的中文注释永远搜不到
window.zoomLevel 是高分屏唯一靠谱的全局缩放方式
它不是调字体大小,而是对整个 UI(菜单栏、侧边栏、编辑器文字、图标)做等比缩放,绕过系统 DPI 渲染冲突,稳定性远高于系统级缩放或 editor.fontSize 单独调整。
- 只用整数:
-1(≈80%)、0(100%)、1(≈120%)、2(≈144%);避免1.5这类小数,Wayland/Linux 下易失效或模糊 - 已打开的终端面板不会响应变更,必须重启 VSCode 或新建终端(
Ctrl+Shift+`) - 检查项目级覆盖:打开项目根目录的
.vscode/settings.json,确认没写window.zoomLevel——它会强制覆盖用户级设置
JAVA_HOME 和你打开项目的方式。其他所谓全局配置,大多是作用域误判或路径没配对。最常被忽略的一点:VSCode 的“用户设置”本质是通用编辑器行为配置,而语言功能(Java、Python、TypeScript)几乎全部由扩展控制,它们的配置粒度天然更细、更局部。











