在 vscode 中使用 Prettier 时出现格式问题 python
Problem formatting python when using Prettier in vscode
在 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 - code formatter cannot format etc...'。所以,显然它仍然对 python 文件使用了错误的格式化程序。我该如何改变这个?!
在VSCode中,Python的“Formatting
”由Python扩展提供。因此,对于 Python,请使用 Python 扩展名(例如:autopepe8)中的格式,以避免使用重复的格式设置以致它们不起作用。
参考:Formatting.
如果我禁用 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 所做的去做,因为那应该有效。如果您不想设置初始提供程序,例如您可能想改用 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 个文件。
在 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 - code formatter cannot format etc...'。所以,显然它仍然对 python 文件使用了错误的格式化程序。我该如何改变这个?!
在VSCode中,Python的“Formatting
”由Python扩展提供。因此,对于 Python,请使用 Python 扩展名(例如:autopepe8)中的格式,以避免使用重复的格式设置以致它们不起作用。
参考:Formatting.
如果我禁用 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 所做的去做,因为那应该有效。如果您不想设置初始提供程序,例如您可能想改用 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 个文件。