在 vscode 中使用 Prettier 时格式化 python 时出现问题

新手上路,请多包涵

在 vscode 中,我想使用 Prettier 作为我的默认格式化程序,但不用于 Python,我将只使用 autopep8。我现在有以下设置:

 {
  "workbench.iconTheme": "vscode-icons",
  "workbench.editorAssociations": [
    {
      "viewType": "jupyter.notebook.ipynb",
      "filenamePattern": "*.ipynb"
    }
  ],
  "git.confirmSync": false,
  "editor.formatOnPaste": true,
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "python.formatting.provider": "autopep8",
  "explorer.confirmDelete": false,
  "python.showStartPage": false,
  "explorer.confirmDragAndDrop": false
}

当我保存 python 文件时,它给我消息:“扩展名‘Pretier - 代码格式化程序无法格式化等…’。所以,显然它仍然对 python 文件使用错误的格式化程序。我该如何更改它?!

原文由 round_circle 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
2 个回答

如果我禁用 Prettier 作为默认格式化程序,它将不再在保存时格式化,但我的 Python 将在保存时由 autopep8 格式化。考虑到这一点,以下解决方案对我来说很有效,既可以让 Prettier 用于其他语言,也可以让 autopep8 用于 Python:

 {
  "workbench.iconTheme": "vscode-icons",
  "workbench.editorAssociations": [
    {
      "viewType": "jupyter.notebook.ipynb",
      "filenamePattern": "*.ipynb"
    }
  ],
  "git.confirmSync": false,
  "editor.formatOnPaste": true,
  "editor.formatOnSave": true,
  "python.formatting.provider": "autopep8",
  "explorer.confirmDelete": false,
  "python.showStartPage": false,
  "explorer.confirmDragAndDrop": false,
  "python.linting.pylintArgs": ["--load-plugins=pylint_django"],
  "javascript.updateImportsOnFileMove.enabled": "always",
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "[python]": {
    "editor.defaultFormatter": "ms-python.python"
  }
}

如果有人找到更好的解决方案,请告诉我!

原文由 round_circle 发布,翻译遵循 CC BY-SA 4.0 许可协议

来自 @round_circle 的回答的有意义的配置片段:

 "[python]": {
    "editor.defaultFormatter": "ms-python.python"
  }

添加后,autopep8 可用于 python 文件。

原文由 user2924768 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题