说明
- 使用yapf使原来的代码看起来雅观一些,当然也可使用autopep8(我之前使用autopep8时,使用一段时间后不知怎么的忽然不能格式化了,所以换成了yapf)
配置步骤
- 安装yapf
pip3 install yapf
- vscode安装插件
- 注意使用插件容易造成冲突,卸载autopep8,Prettier,Beautify等一系列格式化插件
- 在settings.json中添加基本参数
"editor.defaultFormatter": "eeyore.yapf",
"python.formatting.provider": "yapf",
"python.formatting.yapfArgs": [
"--style={ based_on_style: pep8, column_limit: 250 }"
],
"editor.formatOnType": true,
"editor.formatOnSave": true,
- 修改额外的习惯
- 上述之后即可保存自动格式化,但是有一些变量或者参数也自动进行分行,个人不大习惯这样,因此需要额外进行配置
- yapf 配置会在 当前项目的根目录以及用户主目录查找配置文件名,因此在主目录下配置全局的.style.yapf
- docker用户需在每个docker的主目录下设置
cd ~ && touch ~/.style.yapf && vim .style.yapf
[style]
based_on_style = pep8
column_limit = 120
split_before_arithmetic_operator = false
split_before_bitwise_operator = false
split_before_logical_operator = false
split_before_named_assigns = false
split_complex_comprehension = false
- 参数解释
- column_limit = 120 意味着每行最多允许有 120 个字符,在settings中我设置了250 ,应以.style.yapf为准
- plit_before_arithmetic_operator:
- 当设置为 false 时,yapf 不会在算术运算符(如 +, -, *, / 等)之前自动换行。例如,表达式 a + b + c 将尽可能保持在同一行。
- split_before_bitwise_operator:
- 当设置为 false 时,yapf 不会在位运算符(如 &, |, ^, >>, << 等)之前自动换行。例如,表达式 a & b | c 将尽可能保持在同一行。
- split_before_logical_operator:
- 当设置为 false 时,yapf 不会在逻辑运算符(如 and, or, not 等)之前自动换行。例如,条件 if a and b or c 将尽可能保持在同一行。
- split_before_named_assigns:
- 当设置为 false 时,yapf 不会在具名赋值(命名参数或关键字参数)之前自动换行。这意味着在函数调用中的命名参数会尽可能保持在同一行。例如,my_function(arg1=value1, arg2=value2) 将尽量不换行。
- split_complex_comprehension:
- 当设置为 false 时,yapf 不会在复杂的列表推导式、字典推导式、集合推导式或生成器表达式中自动换行。例如,表达式 [x for x in range(10) if x > 5] 将尽可能保持在同一行。