yapf 是一个 python 代码格式化工具, 和 black, autopep8, pycharm 自带的格式化功能相同用途.
使用 yapf 作为我的默认格式化工具, 出于以下考虑:
- 我和团队使用多种 ide, 而 pycharm 自带的格式化功能在其他 ide 上没法用. 所以我需要一个通用的格式化方案来保持代码风格的一致性.
- 我有较高的自定义要求, 特别是部分风格 black 无法让我接受 (格式化后代码变丑了), 使我转向使用 yapf.
预先准备
pip install yapf
- 确保从命令行中, 能通过
yapf
来使用它
在 VS Code 中配置
打开 settings, 在搜索框输入 “yapf”, 修改下图中的两个选项:
在 PyCharm 中配置
注意: 不建议使用插件市场中的 “yapf-pycharm”.
打开 settings, 在 tools - external tools 中添加以下配置:
Name: yapf
Description: A cross-IDEs solution to reformat Python code in the same way I like.
Tool Settings:
Program: yapf
Arguments: -i $FilePath$
Working directory: $ContentRoot$
Advanced Options:
Synchronize files after execution: true
Open console for tool output: false
配置截图:
然后, 在 settings - keymap 中, 找到 “external tools - external tools - yapf”, 为它绑定一个快捷键.
注 1: 这里可能显示的不是 “yapf”, 而是 “external tool”, 个人怀疑是 pycharm 的小 bug.
注 2: 我个人绑定的是 ctrl + alt + l
, 把默认的格式化快捷键替换掉了, pycharm 会自动检测快捷键配置冲突, 提示你是否删除掉原有的快捷键绑定, 选择是.
效果测试:
新建一个文件, 输入:
x = {
'a': 1,
'b' : 2,
'c': 3
}
按下快捷键看效果.