为VS Code配置Python代码格式化插件yapf

 · 1 分钟阅读
 · 教授
文章目录

前言


笔者在使用VS Code之前,一直是通过Sublime Text编辑器在写Python代码。很长一段时间都不知道还有插件系统可以用。后来切换到VS Code以后,发现各种神奇的插件层出不穷,遂开始研究起来。本文提到的yapf就是其中之一。

yapf 是谷歌开源的一个用于格式化 Python 代码的工具,可以一键美化代码。支持两种规范:PEP8 和 Google Style

通常进行Python代码规范配置,包含下面3类工具:

  • 代码格式: pep8, flake8

  • 静态检查: yapf

  • 自动排序import package: isort

我们一起来看看具体如何配置。

先决条件


  • 已安装VS Code,并配置Python语言支持
  • 已安装Conda用于环境管理

部署步骤


1. 使用conda在当前环境下安装代码规范配置工具

conda install yapf flake8 isort

注意:也可以使用pip3进行安装,鉴于本身使用conda进行环境管理,此处以conda安装作为示例

2. 在VS Code设置中设置启用 yapf:

  • 在 VS Code 左下角点击设置按钮,选择 “Settings”
  • 在设置界面的右上角,转到 settings.json
  • 在 settings.json 里进行设置 "python.formatting.provider": "yapf"

3. 配置文件示例:

{
    "workbench.colorTheme": "Solarized Dark",
    "[python]": {
        "editor.formatOnType": true,
        "editor.codeActionsOnSave": {
            "source.organizeImports": true
        }
    },
    "terminal.integrated.inheritEnv": false,
    "files.trimTrailingWhitespace": true,
    "python.linting.flake8Enabled": true,
    "python.linting.flake8Args": [
        "--max-line-length=128"
    ],
    "python.linting.pylintEnabled": false,
    "python.formatting.provider": "yapf",
    "python.formatting.yapfArgs": [
        "--style",
        "{column_limit: 128}"
    ],
    "editor.formatOnSave": true,
    "editor.formatOnPaste": true,
    "files.autoSave": "onFocusChange"
}

4. 完成设置后,即可对代码格式进行自动格式化。

设置中已经定义,如果保存或者进行代码粘贴时,都会自动进行代码格式化。此外,如果希望手动进行格式化,可以使用如下快捷键:

Mac: Shift + Option + F

Windows:Shift + Alt + F

Linux:Ctrl + Shift + `I

5. 实际使用效果:

image.png

总结


自动规范检查代码是十分实用的技巧。对于一些细节问题都能自动完成修正(譬如=后面自动增加空格),这对养成良好的代码习惯很有帮助。当遇到语法错误时,也能清晰地提醒用户在什么地方出现问题。建议每位Python语言的初学者,都进行配置。

参考资料