跳转至

vscode 代码片段管理

使用 vscode 提供的Snippets(代码片段) 功能,可以用一个简短的前缀 (prefix),一键生成一段预设好的、常用的代码块,从而大幅提升编码效率、减少重复劳动并保证代码规范。在团队项目中,有利于提高代码的一致性,使得代码易于维护。

创建 Python 代码片段

  1. 打开用户代码片段配置:

  2. 使用快捷键 Ctrl+Shift+P打开命令面板。

  3. 输入 Snippets 并选择 Preferences: Configure User Snippets
  4. 选择python.json.code-snippets。如果列表中没有,选择 New Global Snippets file... 创建一个新的全局代码片段文件(命名为python.json.code-snippets)。这部分可以做为个人的代码片段文件使用。除此之外,还需参考下文,使用全局代码片段的部分来添加一个公共的全局代码片段。

  5. 编辑 python.json.code-snippets 文件: 此文件使用 JSON 格式定义 Python 代码片段。每个片段都是一个 JSON 对象,包含以下关键属性:

  6. 名称: 给代码片段起名。

    • prefix: 触发代码片段的快捷前缀。
    • body: 代码片段的主体内容,是一个字符串数组,每个字符串代表一行代码。
    • description: 对代码片段的简短描述。

示例

按上述方式打开python.json.code-snippets文件,创建一个名称为 ZLOG 的用于日志管理的代码片段。前缀 (prefix) 为 zlog,在 body 中把代码片段以字符串数组形式填写,在 description 中说明该代码片段的作用。

"ZLOG": {
    "prefix": "zlog",
    "body": [
        "import logging",
        "import os",
        "",
        "# LOG_LEVEL 可以写 DEBUG, INFO, WARNING, ERROR, CRITICAL",
        "LOG_LEVEL = os.getenv(\"LOG_LEVEL\") or \"${2:DEBUG}\"",
        "",
        "",
        "def setup_logger(name=\"${1:default}\") -> logging.Logger:",
        "    \"\"\"初始化 logger\"\"\"",
        "    logger = logging.getLogger(name)",
        "    logger.setLevel(LOG_LEVEL.upper())",
        "",
        "    if not logger.handlers:",
        "        handler = logging.StreamHandler()",
        "        formatter = logging.Formatter(",
        "            \"%(asctime)s [%(levelname)s] %(name)s: %(message)s\"",
        "        )",
        "        handler.setFormatter(formatter)",
        "        logger.addHandler(handler)",
        "",
        "    return logger",
        "",
        "",
        "if __name__ == \"__main__\":",
        "    # 声明一个 logger 实例",
        "    logger = setup_logger()",
        "",
        "    logger.debug(\"debug\")",
        "    logger.info(\"info\")",
        "    logger.warning(\"warning\")",
        "    logger.error(\"error\")",
        "    $0"
    ],
    "description": "python 日志"
}

在配置好 snippets 文件后,就可以在 py 文件中输入设定好的前缀zlog,就可以看到在提示菜单中有zlog选项,选择后,即可直接生成预设好的代码片段。

团队协作中管理和使用代码片段

使用全局代码片段 (重要)

# 克隆仓库
git clone git@dev.vip.xindatek.com:universe/club.git
# 切换到snippets目录
cd ./club/snippets
# 执行脚本
python install.py

该脚本的作用是将仓库中 snippets 目录下的python.json.code-snippets代码片段管理文件软链接到 VSCode 管理 snippets 文件的目录(链接文件默认会加上zsxd-的前端,在目录中名称为zsxd-python.json.code-snippets),这样就可以直接在自己本地的 vscode 中使用仓库中提供好的代码片段了。可以同时存在多个 sinppets 代码片段文件。

如何维护全局代码片段

在克隆仓库后,如果需要维护全局代码片段,只需要修改python.json.code-snippets文件,参考前文给到的创建代码片段示例完成,然后提交到仓库即可。 如果仓库有其他人更新了全局代码片段,则使用git pull更新即可。

使用项目级代码片段

VSCode 允许在项目工作区内定义专属于该项目的代码片段。

操作步骤:

  1. 在项目根目录下创建 .vscode 文件夹 (如果尚不存在)。
  2. .vscode 文件夹内,创建一个以 .code-snippets 为后缀的 JSON 文件,例如 python.json.code-snippets
  3. 编辑该文件,将团队共享的代码片段写入其中。文件格式与您在教程中提到的 python.json.code-snippets 完全相同。

示例项目结构:

project/
├── .vscode/
│   ├── python.code-snippets  // 团队共享的Python代码片段
├── src/
│   └── main.py
└── README.md