如何让VSCode的Auto Save与Black、Isort协同工作?
让VSCode自动保存触发Black和Isort的解决方法
问题场景
已在VSCode中配置Black格式化工具和Isort导包排序工具,手动按Ctrl+S保存时两者可正常工作,但开启files.autoSave: "afterDelay"自动保存后,自动保存功能正常,但Black和Isort不会触发,仍需手动保存才生效。
原配置如下:
// "settings.json" { ... "[python]": { "editor.defaultFormatter": "ms-python.black-formatter", // 配置Black为默认格式化工具 "editor.formatOnSave": true, // 手动保存时触发Black "editor.codeActionsOnSave": { "source.organizeImports": true // 手动保存时触发Isort } }, "files.autoSave": "afterDelay" // 开启延迟自动保存 }
解决步骤
VSCode默认仅在手动保存时触发formatOnSave和codeActionsOnSave,要让自动保存也触发这些动作,需添加以下两个核心配置项:
editor.formatOnSaveMode: 设置为"file",让格式化在任何保存操作(包括自动保存)时触发editor.codeActionsOnSaveMode: 设置为"file",让代码动作(如Isort导包排序)在任何保存操作时触发
修改后的完整配置
// "settings.json" { ... "[python]": { "editor.defaultFormatter": "ms-python.black-formatter", "editor.formatOnSave": true, "editor.formatOnSaveMode": "file", // 关键配置:自动保存时触发Black "editor.codeActionsOnSave": { "source.organizeImports": true }, "editor.codeActionsOnSaveMode": "file" // 关键配置:自动保存时触发Isort }, "files.autoSave": "afterDelay" }
配置说明
editor.formatOnSaveMode: "file":覆盖默认的"manual"模式,使格式化操作在文件的任何保存事件(手动/自动)下都执行editor.codeActionsOnSaveMode: "file":同理,让代码动作(包括Isort的导包整理)在所有保存事件下生效
内容的提问来源于stack exchange,提问作者Super Kai - Kazuya Ito
相关产品推荐
相关产品推荐

