如何解决在 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 文件格式化程序。我该如何更改? !
解决方法
如果我禁用 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"
}
}
如果有人找到更好的解决方案,请告诉我!
,在 VSCode 中,Python 的“Formatting
”是由 Python 扩展提供的。因此,对于 Python,请使用 Python 扩展中的格式(例如:autopepe8)以避免使用重复的格式设置,以免它们不起作用。
参考:Formatting。
,你可以做@round_circle 做的事情,因为它应该可以工作。如果您不想设置初始提供程序,例如您可能想改用 Black,您也可以添加到您的 settings.json 中:
"[python]": {
"editor.defaultFormatter": null
},
我碰巧使用的是 Microsoft 的 Python 扩展,默认为 autoPep8,这将提示您设置要使用的格式化程序。 photo of the prompt to add formatter 然后您可以通过添加以下内容在 settings.json 中添加您的提供者:
"python.formatting.provider": <your_formatter>
这也可以在这里引用:VS Code Formatting
,来自@round_circle 回答的有意义的配置片段:
"[python]": {
"editor.defaultFormatter": "ms-python.python"
}
添加后,autopep8 适用于 python 文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。