You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让VS Code保存文件时真正执行Ruff格式化文档功能?

解决VS Code保存时Ruff格式化与手动操作不一致的问题

问题原因

保存文件时,你的配置除了触发Ruff的格式化操作,还额外执行了代码修复动作:source.fixAll和source.organizeImports。其中Ruff的F401规则(检测未使用导入)会自动移除未被引用的import os和import abc;而手动执行「Ruff: Format document」仅执行纯格式化逻辑(如调整引号、添加空行),不会触发lint修复操作,这就是两者结果差异的核心原因。

解决方案

方案1:移除保存时的额外代码修复动作

修改settings.json中的editor.codeActionsOnSave配置,注释或删除source.fixAll和source.organizeImports,让保存时仅执行Ruff格式化:

"[python]": {
  "editor.formatOnSave": true,
  "editor.formatOnSaveMode": "file",
  "editor.defaultFormatter": "charliermarsh.ruff",
  "editor.tabSize": 4,
  "editor.insertSpaces": true,
  "editor.codeActionsOnSave": {
    // 移除以下两行,避免保存时执行lint修复
    // "source.fixAll": "explicit",
    // "source.organizeImports": "explicit"
  }
},

方案2:保留代码修复但禁用未使用导入移除规则

如果你需要保留source.fixAll或source.organizeImports的其他功能,可通过Ruff配置禁用F401规则:

方法A:项目级配置(推荐)

在项目根目录创建ruff.toml文件,添加以下内容:

[lint]
ignore = ["F401"]

方法B:VS Code全局配置

在settings.json中添加Ruff lint参数:

"ruff.lint.args": ["--ignore=F401"]

完成上述配置后,保存文件时的格式化结果会和手动执行「Ruff: Format document」完全一致,既保留引号替换、空行调整的格式化效果,也不会移除未使用的导入语句。

内容的提问来源于stack exchange,提问作者Stephen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 23:44:53