vscode 代码片段管理¶
使用 vscode 提供的Snippets(代码片段) 功能,可以用一个简短的前缀 (prefix),一键生成一段预设好的、常用的代码块,从而大幅提升编码效率、减少重复劳动并保证代码规范。在团队项目中,有利于提高代码的一致性,使得代码易于维护。
创建 Python 代码片段¶
-
打开用户代码片段配置:
-
使用快捷键
Ctrl+Shift+P打开命令面板。 - 输入
Snippets并选择Preferences: Configure User Snippets。 -
选择
python.json.code-snippets。如果列表中没有,选择New Global Snippets file...创建一个新的全局代码片段文件(命名为python.json.code-snippets)。这部分可以做为个人的代码片段文件使用。除此之外,还需参考下文,使用全局代码片段的部分来添加一个公共的全局代码片段。 -
编辑
python.json.code-snippets文件: 此文件使用 JSON 格式定义 Python 代码片段。每个片段都是一个 JSON 对象,包含以下关键属性: -
名称: 给代码片段起名。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 允许在项目工作区内定义专属于该项目的代码片段。
操作步骤:
- 在项目根目录下创建
.vscode文件夹 (如果尚不存在)。 - 在
.vscode文件夹内,创建一个以.code-snippets为后缀的 JSON 文件,例如python.json.code-snippets。 - 编辑该文件,将团队共享的代码片段写入其中。文件格式与您在教程中提到的
python.json.code-snippets完全相同。
示例项目结构:
project/
├── .vscode/
│ ├── python.code-snippets // 团队共享的Python代码片段
├── src/
│ └── main.py
└── README.md