【发布时间】:2021-05-21 13:30:34
【问题描述】:
从现在开始,我将在我的所有 Python 项目中改用 Black。到目前为止,我一直使用 autopep8 作为我的自动格式化程序和 isort 来对我的导入进行排序。但是在使用 Black 时,我发现 Black 在格式化我的代码的同时也完成了 isort 的工作。虽然我不介意 Black 对我的导入进行排序的方式,但我仍然想使用 isort 来处理我的导入,并且我希望 Black 只处理我的代码,而不是导入。那么,有没有办法将 Black 配置为仅格式化我的代码而不接触导入?顺便说一句,我正在使用 VS Code,因此有关如何在 VS Code 中应用配置的一些帮助也会有所帮助。谢谢!
【问题讨论】:
-
能不能先变黑再跑isort?
-
不幸的是 black 不能做 isort 做的事情,black 只是一个格式化程序(不是 linter)所以运行 black 不能改变 AST。更改导入顺序将更改 AST,因此黑色不能接受。为了实现你想要的,你应该首先使用
isort(如果你需要删除未使用的导入,则使用autoflake -r --in-place --remove-unused-variables),然后使用black格式化 -
我不确定 VS Code 是否可以配置为在我格式化文档时先运行黑色然后自动排序。
-
实际上应该先运行 isort...
标签: python visual-studio-code autopep8 python-black isort