vscode中使用yapf自动格式代码

本文介绍了如何在VSCode中使用yapf代替autopep8进行Python代码格式化,包括安装步骤、配置VSCode插件、设置编辑器默认格式化器,以及个性化yapf的配置选项,如行宽限制和操作符分隔规则。
摘要由CSDN通过智能技术生成

说明

  • 使用yapf使原来的代码看起来雅观一些,当然也可使用autopep8(我之前使用autopep8时,使用一段时间后不知怎么的忽然不能格式化了,所以换成了yapf)

配置步骤

  1. 安装yapf
pip3 install yapf
  1. vscode安装插件
  • 注意使用插件容易造成冲突,卸载autopep8,Prettier,Beautify等一系列格式化插件在这里插入图片描述
  1. 在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,
  1. 修改额外的习惯
  • 上述之后即可保存自动格式化,但是有一些变量或者参数也自动进行分行,个人不大习惯这样,因此需要额外进行配置
  • yapf 配置会在 当前项目的根目录以及用户主目录查找配置文件名,因此在主目录下配置全局的.style.yapf
  • docker用户需在每个docker的主目录下设置
cd ~ && touch ~/.style.yapf && vim .style.yapf
  • 将以下参数copy进去
[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] 将尽可能保持在同一行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值