vscode代码片段的设置与使用
在 Visual Studio Code (VS Code) 中,可以通过自定义**代码片段(Snippets)**快速插入常用代码模板。以下是详细设置步骤:
步骤 1:打开代码片段设置
-
按下快捷键
Ctrl + Shift + P(Windows/Linux)或Cmd + Shift + P(Mac)打开命令面板。 -
输入
Snippets,选择Preferences: Configure User Snippets。-
全局片段:选择
New Global Snippets File(适用于所有文件类型)。 -
语言特定片段:选择对应语言(如
Python、JavaScript等)。
-
步骤 2:编辑代码片段文件
选择语言或创建全局片段后,会打开一个 .json 文件。按照以下格式添加代码片段:
json
{"Print to console": {"prefix": "clog","body": ["console.log('$1');","$2"],"description": "快速插入 console.log"}
}
-
键名(如
"Print to console"):代码片段名称,可自定义。 -
prefix:触发代码片段的快捷词(如输入clog后按Tab)。 -
body:插入的代码内容(每行一个字符串,支持多行)。 -
description:代码片段的描述(可选)。
步骤 3:高级功能
-
光标占位符:使用
$1,$2指定光标位置,按Tab跳转。json
"body": ["function ${1:name}($2) {"," $3","}" ] -
预设变量:使用
${变量名}或内置变量(如TM_FILENAME当前文件名)。json
"body": ["// File: ${TM_FILENAME}","console.log('${1:Hello World}');" ] -
多选项占位符:用
|分隔选项。json
"body": ["${1|one,two,three|}" ]
步骤 4:保存并测试
-
保存
.json文件。 -
在代码文件中输入
prefix设置的快捷词(如clog),按Tab或Enter插入片段。
示例:Python 的 main 函数片段
json
{"Python Main Function": {"prefix": "main","body": ["if __name__ == '__main__':"," $1"],"description": "插入 Python 主函数入口"}
}
注意事项
-
JSON 语法:确保逗号、引号正确,避免格式错误。
-
语言作用域:确认代码片段文件对应正确的语言(如
python.json仅对.py文件生效)。 -
冲突处理:若多个片段有相同
prefix,按Tab后会弹出选择列表。
通过以上步骤,你可以高效创建和管理常用代码片段,大幅提升编码速度!🚀
在 Visual Studio Code 中设置好代码片段后,可以通过以下方式快速使用它们:
基础使用方式
-
输入前缀触发
-
在代码文件中输入你定义的
prefix(快捷词,例如clog)。 -
按下
Tab或Enter,代码片段会自动插入。
-
-
光标跳转与编辑
-
代码片段中的
$1,$2表示光标停留的位置。按Tab键可依次跳转到下一个占位符,按Shift + Tab返回上一个。 -
直接编辑占位符内容,完成后按
Enter或继续编码。
-
高级用法示例
1. 多选项占位符
如果代码片段中设置了多选占位符(例如 ${1|one,two,three|}),输入后会弹出选项列表,用方向键选择后按 Enter 确认。
json
{"React Component": {"prefix": "rfc","body": ["import React from 'react';","","export default function ${1|Button,Card,Header|}() {"," return ("," <div>$2</div>"," );","}"]}
}
-
输入
rfc→ 按Tab→ 选择组件名(如Card)→ 按Tab跳转到<div>位置。
2. 变量占位符
使用内置变量(如 TM_FILENAME 当前文件名)或自定义变量:
json
{"File Header": {"prefix": "header","body": ["// File: ${TM_FILENAME}","// Author: ${1:Your Name}","// Created: ${CURRENT_YEAR}-${CURRENT_MONTH}-${CURRENT_DATE}"]}
}
-
输入
header→ 按Tab→ 自动填充文件名和日期,并等待输入作者名。
使用技巧
-
手动触发建议列表
如果代码片段未自动弹出,按下Ctrl + Space(Windows/Linux)或Cmd + Space(Mac)手动唤出建议列表,选择对应的代码片段。 -
语言特定限制
-
确保代码片段文件作用于当前文件类型(例如
python.json仅在.py文件中生效)。 -
在非目标语言文件中,代码片段不会触发。
-
-
全局片段与局部片段
-
全局片段:适用于所有文件类型(需在命令面板中选择
New Global Snippets File)。 -
语言特定片段:仅对指定语言生效(如
javascript.json只对.js文件有效)。
-
常见问题
1. 代码片段未触发?
-
检查项:
-
确认
prefix输入正确(区分大小写)。 -
确保代码片段文件与当前文件类型匹配。
-
检查 JSON 文件是否有语法错误(如缺少逗号或引号)。
-
2. 如何快速查找已定义的片段?
-
按下
Ctrl + Shift + P→ 输入Insert Snippet→ 选择对应语言的片段库查看列表。
实战演示
假设你为 Python 定义了一个 for 循环片段:
json
{"For Loop": {"prefix": "forloop","body": ["for ${1:i} in range(${2:10}):"," $3"]}
}
-
使用步骤:
-
在
.py文件中输入forloop。 -
按
Tab→ 自动插入代码,光标停留在i处。 -
输入变量名(如
index)→ 按Tab→ 编辑范围(如5)→ 按Tab→ 在循环体内编写代码。
-
总结
-
核心操作:输入
prefix→Tab/Enter→ 编辑占位符 →Tab跳转。 -
高效技巧:
-
用
$0指定片段插入后的最终光标位置。 -
结合内置变量(如时间、文件名)实现动态内容。
-
使用多选项占位符减少重复输入。
-
通过熟练使用代码片段,你可以将编码效率提升数倍! 🚀
操作示例
以.vue文件为例:
需求目标:新建一个.vue文件时,输入vts,通过代码片段生成以下代码:
<script setup lang="ts" name=""></script><template></template><style scoped lang="scss"></style>
并且光标定位在 name=""的双引号中间
设置操作记录



"vue3-ts-template": { //快捷输入的时候显示的提示"prefix": "vts", //输入的前缀,就是输入这个会有提示"body": [ //这个是一个字符串数组,就是会输出的内容,如果内容含有双引号,需要在双引号前面使用\进行转义"<script setup lang=\"ts\" name=\"$1\">","$2","</script>","","<template></template>","","<style scoped lang=\"scss\"></style>",]}
使用操作记录
输入vts,自动弹出代码片段提示,按回车确认

输入name,按Tab,光位定位到下一个占位,就是第2行开头位置

相关文章:
vscode代码片段的设置与使用
在 Visual Studio Code (VS Code) 中,可以通过自定义**代码片段(Snippets)**快速插入常用代码模板。以下是详细设置步骤: 步骤 1:打开代码片段设置 按下快捷键 Ctrl Shift P(Windows/Linux)或…...
在Vue中如何高效管理组件状态
在Vue中高效管理组件状态,可以采用以下几种策略: 使用Vuex进行状态管理: 对于复杂的应用,使用Vuex是一个非常有效的状态管理方案。Vuex提供了一个集中存储管理所有组件的状态,并以响应式的方式更新视图。它包括以下几个…...
uniapp -- 列表垂直方向拖拽drag组件
背景 需要在小程序中实现拖拽排序功能,所以就用到了m-drag拖拽组件,在开发的过程中,发现该组件在特殊的场景下会有些问题,并对其进行了拓展。 效果 组件代码 <template><!-- 创建一个垂直滚动视图,类名为m-drag --><scroll...
一款非常小的软件,操作起来非常丝滑!
今天我想给大家分享一款超级实用的小软件,它是一款电脑上用的倒计时和关机助手。 关机助手 帮你自动关机 这款关机助手特别小巧,完全不需要安装,文件大小才60KB,比一个小小的文件还小。你只需要把它下载下来,双击打开…...
FrameWork基础案例解析(四)
文章目录 单独拉取framework开机与开机动画横屏Android.mk语法单独编译SDKmake 忽略warning单独修改和编译Camera2单独编译Launcher3Android Studio 导入、修改、编译Settings导入 Android Studio 导入、修改、编译Launcher3android 开机默认进入指定Launcher植入自己的apk到系…...
嵌入式电量与功耗优化:从理论到实战
目录 一、为什么功耗是个大问题? 电池寿命的命门 效率决定竞争力 运营成本的隐形杀手 环保不是空话 二、功耗从哪来?硬件软件一个都跑不了 硬件:功耗的物理根源 处理器:耗电主力军 存储器:偷偷摸摸的耗电鬼 电源管理单元(PMU):幕后功臣也有损耗 时钟系统:滴…...
通过 C# 提取PDF文档中的图片
当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,避免每次都要从 PDF 中查找。本文将介绍如何使用C#通过代码从PDF文档中提取图片ÿ…...
国标GB28181视频监控平台EasyCVR保驾护航休闲娱乐“九小场所”安全运营
凭借降低人力资源、节约物资成本的优势,在多个场景得到广泛应用。如今,棋牌室、洗浴中心、酒店这类人员频繁流动和密集的场所,已成为安全管理的重点。 尽管部分棋牌室已安装了监控设备,但是设备功能单一,只能实现一…...
GoLand 2024.3 中文 GO语言开发工具
GoLand 2024.3 中文 GO语言开发工具 文章目录 GoLand 2024.3 中文 GO语言开发工具一、介绍二、效果三、下载 一、介绍 JetBrains GoLand 2024 ,是一款GO语言开发工具,全行代码补全:能使用本地运行的上下文感知深度学习模型,可以自…...
HTML 音频(Audio)学习笔记
一、HTML 音频概述 在 HTML 中,音频可以通过多种方式播放,但要确保音频在不同浏览器和设备上都能正常播放,需要掌握一些技巧。HTML5 引入了 <audio> 元素,为音频播放提供了一种标准方法,但在 HTML4 中ÿ…...
去中心化交易所(DEX)
核心概念与DEX类型 DEX vs CEX 中心化交易所(CEX)风险:资产托管风险(如2019年超2.9亿美元被盗)、隐私泄露(如50万用户信息泄漏)。 DEX优势:用户自持资产(非托管&#x…...
CentOS 7 强制升级Docker 24.x终极指南(解决MySQL8镜像兼容性问题)
CentOS 7 强制升级Docker 24.x终极指南(解决MySQL8镜像兼容性问题) 旧版本: 新版本docker: 一、问题背景与方案选型 1.1 典型报错分析 The designated data directory /var/lib/mysql/ is unusable根本原因:旧版…...
【区块链安全 | 第十九篇】类型之映射类型
文章目录 映射类型可迭代映射 映射类型 映射类型使用语法 mapping(KeyType KeyName? > ValueType ValueName?),映射类型的变量声明使用语法 mapping(KeyType KeyName? > ValueType ValueName?) VariableName。 KeyType 可以是任何内置值类型、bytes、st…...
Flask与 FastAPI 对比:哪个更适合你的 Web 开发?
在开发 Web 应用时,Python 中有许多流行的 Web 框架可以选择,其中 Flask 和 FastAPI 是两款广受欢迎的框架。它们各有特色,适用于不同的应用场景。本文将从多个角度对比这两个框架,帮助你更好地选择适合的框架来构建你的 Web 应用…...
QT 中的元对象系统(五):QMetaObject::invokeMethod的使用和实现原理
目录 1.简介 2.原理概述 3.实现分析 3.1.通过方法名调用方法的实现分析 3.2.通过可调用对象调用方法的实现分析 4.使用场景 5.总结 1.简介 QMetaObject::invokeMethod 是 Qt 框架中的一个静态方法,用于在运行时调用对象的成员函数。这个方法提供了一种动态调…...
Linux进程管理与进程间通信
一、进程基础知识 1. 进程的定义与特性 **定义**:进程是程序的一次执行过程,是系统资源分配的基本单位 **特性**: - 动态性:进程是程序的动态执行过程 - 并发性:多个进程可以并发执行 - 独立性:进…...
【无人机】无人机PX4飞控系统高级软件架构
目录 1、概述(图解) 一、数据存储层(Storage) 二、外部通信层(External Connectivity) 三、核心通信枢纽(Message Bus) 四、硬件驱动层(Drivers) 五、飞…...
启动arthas-boot.jar端口占用
问题 [rootlocalhost arthas-4.0.4]# java -jar arthas-boot.jar [ERROR] The telnet port 3658 is used by process 7066 instead of target process 6155, you will connect to an unexpected process. [ERROR] 1. Try to restart arthas-boot, select process 7066, shutdow…...
JSVMP逆向实战:原理分析与破解思路详解
引言 在当今Web安全领域,JavaScript虚拟机保护(JSVMP)技术被广泛应用于前端代码的保护和反爬机制中。作为前端逆向工程师,掌握JSVMP逆向技术已成为必备技能。本文将深入剖析JSVMP的工作原理,并分享实用的逆向破解思路…...
【SPP】蓝牙链路控制(LC)在SPP中互操作性深度解析
在蓝牙协议栈的精密分层体系中,其链路控制(Link Control, LC)层作为基带层的核心组件,承载着物理信道管理、连接建立与维护等关键任务。其互操作性要求直接决定了不同厂商设备能否实现无缝通信。本文将以蓝牙技术规范中的LC互操作…...
单片机学习之定时器
定时器是用来定时的机器,是存在于STM32单片机中的一个外设。STM32一般总共有8个定时器,分别是2个高级定时器(TIM1、TIM8),4个通用定时器(TIM2、TIM3、TIM4、TIM5)和2个基本定时器(TI…...
供应链管理:计算题 / 倒扣法
一、理解倒扣法 在供应链管理中,倒扣法是一种常用的成本计算方法,主要用于确定商品的成本和销售价格,以确保特定的毛利率。倒扣法的基本原理是在已知售价和期望毛利率的情况下,逆推计算出供货价或成本价。 二、倒扣法的计算公式…...
算法每日一练 (25)
💢欢迎来到张翊尘的技术站 💥技术如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌💥 文章目录 算法每日一练 (25)四数之和题目描述解题思路解题代码c…...
【大模型基础_毛玉仁】6.4 生成增强
目录 6.4 生成增强6.4.1 何时增强1)外部观测法2)内部观测法 6.4.2 何处增强6.4.3 多次增强6.4.4 降本增效1)去除冗余文本2)复用计算结果 6.4 生成增强 检索器得到相关信息后,将其传递给大语言模型以期增强模型的生成能…...
Zephyr实时操作系统初步介绍
一、概述 Zephyr是由Linux基金会托管的开源实时操作系统(RTOS),专为资源受限的物联网设备设计。其核心特性包括模块化架构、跨平台兼容性、安全性优先以及丰富的连接协议支持。基于Apache 2.0协议,Zephyr允许商业和非商业用途的自…...
【GCC警告报错4】warning: format not a string literal and no format arguments
文章主本文根据笔者个人工作/学习经验整理而成,如有错误请留言。 文章为付费内容,已加入原创保护,禁止私自转载。 文章发布于:《C语言编译报错&警告合集》 如图所示: 原因: snprintf的函数原型&#x…...
【落羽的落羽 C++】模板简介
文章目录 一、模板的引入二、函数模板1. 函数模板的使用2. 函数模板的原理3. 函数模板的实例化4. 函数模板的匹配 三、类模板 一、模板的引入 假如我们想写一个Swap函数,针对每一种类型,都要函数重载写一次,但它们的实现原理是几乎一样的。在…...
USB(通用串行总线)数据传输机制和包结构简介
目录 1. USB的物理连接电缆结构时钟恢复技术 2. USB的数据传输方式包(Packet) 3. 包的传输规则帧和微帧 4. 包的结构1. 同步字段(Sync)2. 包标识符字段(PID)3. 数据字段4. 循环冗余校验字段(CRC…...
【目标检测】【深度学习】【Pytorch版本】YOLOV3模型算法详解
【目标检测】【深度学习】【Pytorch版本】YOLOV3模型算法详解 文章目录 【目标检测】【深度学习】【Pytorch版本】YOLOV3模型算法详解前言YOLOV3的模型结构YOLOV3模型的基本执行流程YOLOV3模型的网络参数 YOLOV3的核心思想前向传播阶段反向传播阶段 总结 前言 YOLOV3是由华盛顿…...
【前端扫盲】postman介绍及使用
Postman 是一款专为 API 开发与测试设计的 全流程协作工具,程序员可通过它高效完成接口调试、自动化测试、文档管理等工作。以下是针对程序员的核心功能介绍和应用场景说明: 一、核心功能亮点 接口请求构建与调试 支持所有 HTTP 方法(GET/POS…...
