vscode python格式化autopep8禁用E266

时间:2019-08-05 21:21:18

标签: python visual-studio-code vscode-settings autopep8

我正在尝试将Visual Studio代码设置为使用autopep8进行格式化,但忽略了E266(对于块注释,前导'#'太多)以允许注释中的Markdown子标题。

-忽略设置似乎可以解决其他错误,例如E302,但不适用于E266。

我的格式设置如下,即使忽略了E302,E266仍然得到强制执行

    "python.formatting.provider": "autopep8",
    "python.formatting.autopep8Args": [
        "--ignore",
        "E266,E302",
        // E266 = multiple-# in comments
        // E302 = expect 2 blank lines before def
    ],

使用上面的配置,autopep8将忽略E302(因此它不会在def之前插入行),但是它将继续根据E266删除注释中的多余#。

我可以将Linter设置为忽略E266,这样它就不会在UI中加下划线,但不会在修改代码的Formatter中加下划线。这是Linter配置正常工作

    "python.pythonPath": "...path...",
    "python.linting.pep8Enabled": true,
    "python.linting.pep8Args": [
        "--ignore=E266"
        // E266 = multiple-# in comments
    ],
    "python.linting.pylintPath": "...path...",
    "python.linting.pylintArgs": [
        "--load-plugins",
        "pylint_django"
    ],
    "python.linting.pylintEnabled": true,

是否存在类似于E266的重叠规则,尽管忽略了E266,该规则仍使格式化程序仍进行更改?之所以不会出现,是因为当忽略E266时,Linter无法识别正在编辑的行。

Example.py (用于示例用法)

## These lines will lose one "#" when Formatted in VSCode
## Even though we set it to ignore E266

1 个答案:

答案 0 :(得分:0)

您正在寻找E265 - Format block comments.

在我的Vscode中使用以下配置:

    "python.formatting.autopep8Args": [
    "--ignore=E302,E265"
],

您的示例对我来说没有变化。
autopep8 --list-fixes似乎与README中列出的内容不匹配。