vscode代码片段的设置与使用

news2025/4/7 23:36:18

在 Visual Studio Code (VS Code) 中,可以通过自定义**代码片段(Snippets)**快速插入常用代码模板。以下是详细设置步骤:


步骤 1:打开代码片段设置

  1. 按下快捷键 Ctrl + Shift + P(Windows/Linux)或 Cmd + Shift + P(Mac)打开命令面板。

  2. 输入 Snippets,选择 Preferences: Configure User Snippets

    • 全局片段:选择 New Global Snippets File(适用于所有文件类型)。

    • 语言特定片段:选择对应语言(如 PythonJavaScript 等)。


步骤 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. 光标占位符:使用 $1$2 指定光标位置,按 Tab 跳转。

    json

    "body": [
      "function ${1:name}($2) {",
      "  $3",
      "}"
    ]
  2. 预设变量:使用 ${变量名} 或内置变量(如 TM_FILENAME 当前文件名)。

    json

    "body": [
      "// File: ${TM_FILENAME}",
      "console.log('${1:Hello World}');"
    ]
  3. 多选项占位符:用 | 分隔选项。

    json

    "body": [
      "${1|one,two,three|}"
    ]

步骤 4:保存并测试

  1. 保存 .json 文件。

  2. 在代码文件中输入 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 中设置好代码片段后,可以通过以下方式快速使用它们:


基础使用方式

  1. 输入前缀触发

    • 在代码文件中输入你定义的 prefix(快捷词,例如 clog)。

    • 按下 Tab 或 Enter,代码片段会自动插入。

  2. 光标跳转与编辑

    • 代码片段中的 $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 → 自动填充文件名和日期,并等待输入作者名。


使用技巧

  1. 手动触发建议列表
    如果代码片段未自动弹出,按下 Ctrl + Space(Windows/Linux)或 Cmd + Space(Mac)手动唤出建议列表,选择对应的代码片段。

  2. 语言特定限制

    • 确保代码片段文件作用于当前文件类型(例如 python.json 仅在 .py 文件中生效)。

    • 在非目标语言文件中,代码片段不会触发。

  3. 全局片段与局部片段

    • 全局片段:适用于所有文件类型(需在命令面板中选择 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"
    ]
  }
}
  • 使用步骤

    1. 在 .py 文件中输入 forloop

    2. 按 Tab → 自动插入代码,光标停留在 i 处。

    3. 输入变量名(如 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行开头位置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2328243.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uniapp -- 列表垂直方向拖拽drag组件

背景 需要在小程序中实现拖拽排序功能,所以就用到了m-drag拖拽组件,在开发的过程中,发现该组件在特殊的场景下会有些问题,并对其进行了拓展。 效果 组件代码 <template><!-- 创建一个垂直滚动视图,类名为m-drag --><scroll

一款非常小的软件,操作起来非常丝滑!

今天我想给大家分享一款超级实用的小软件&#xff0c;它是一款电脑上用的倒计时和关机助手。 关机助手 帮你自动关机 这款关机助手特别小巧&#xff0c;完全不需要安装&#xff0c;文件大小才60KB&#xff0c;比一个小小的文件还小。你只需要把它下载下来&#xff0c;双击打开…

FrameWork基础案例解析(四)

文章目录 单独拉取framework开机与开机动画横屏Android.mk语法单独编译SDKmake 忽略warning单独修改和编译Camera2单独编译Launcher3Android Studio 导入、修改、编译Settings导入 Android Studio 导入、修改、编译Launcher3android 开机默认进入指定Launcher植入自己的apk到系…

通过 C# 提取PDF文档中的图片

当 PDF 文件中包含有价值的图片&#xff0c;如艺术画作、设计素材、报告图表等&#xff0c;提取图片可以将这些图像资源进行单独保存&#xff0c;方便后续在不同的项目中使用&#xff0c;避免每次都要从 PDF 中查找。本文将介绍如何使用C#通过代码从PDF文档中提取图片&#xff…

国标GB28181视频监控平台EasyCVR保驾护航休闲娱乐“九小场所”安全运营

凭借降低人力资源、节约物资成本的优势&#xff0c;在多个场景得到广泛应用。如今&#xff0c;棋牌室、洗浴中心、酒店这类人员频繁流动和密集的场所&#xff0c;已成为安全管理的重点。​ 尽管部分棋牌室已安装了监控设备&#xff0c;但是设备功能单一&#xff0c;只能实现一…

GoLand 2024.3 中文 GO语言开发工具

GoLand 2024.3 中文 GO语言开发工具 文章目录 GoLand 2024.3 中文 GO语言开发工具一、介绍二、效果三、下载 一、介绍 JetBrains GoLand 2024 &#xff0c;是一款GO语言开发工具&#xff0c;全行代码补全&#xff1a;能使用本地运行的上下文感知深度学习模型&#xff0c;可以自…

CentOS 7 强制升级Docker 24.x终极指南(解决MySQL8镜像兼容性问题)

CentOS 7 强制升级Docker 24.x终极指南&#xff08;解决MySQL8镜像兼容性问题&#xff09; 旧版本&#xff1a; 新版本docker&#xff1a; 一、问题背景与方案选型 1.1 典型报错分析 The designated data directory /var/lib/mysql/ is unusable根本原因&#xff1a;旧版…

【区块链安全 | 第十九篇】类型之映射类型

文章目录 映射类型可迭代映射 映射类型 映射类型使用语法 mapping(KeyType KeyName? > ValueType ValueName?)&#xff0c;映射类型的变量声明使用语法 mapping(KeyType KeyName? > ValueType ValueName?) VariableName。 KeyType 可以是任何内置值类型、bytes、st…

Flask与 FastAPI 对比:哪个更适合你的 Web 开发?

在开发 Web 应用时&#xff0c;Python 中有许多流行的 Web 框架可以选择&#xff0c;其中 Flask 和 FastAPI 是两款广受欢迎的框架。它们各有特色&#xff0c;适用于不同的应用场景。本文将从多个角度对比这两个框架&#xff0c;帮助你更好地选择适合的框架来构建你的 Web 应用…

QT 中的元对象系统(五):QMetaObject::invokeMethod的使用和实现原理

目录 1.简介 2.原理概述 3.实现分析 3.1.通过方法名调用方法的实现分析 3.2.通过可调用对象调用方法的实现分析 4.使用场景 5.总结 1.简介 QMetaObject::invokeMethod 是 Qt 框架中的一个静态方法&#xff0c;用于在运行时调用对象的成员函数。这个方法提供了一种动态调…

【无人机】无人机PX4飞控系统高级软件架构

目录 1、概述&#xff08;图解&#xff09; 一、数据存储层&#xff08;Storage&#xff09; 二、外部通信层&#xff08;External Connectivity&#xff09; 三、核心通信枢纽&#xff08;Message Bus&#xff09; 四、硬件驱动层&#xff08;Drivers&#xff09; 五、飞…

【SPP】蓝牙链路控制(LC)在SPP中互操作性深度解析

在蓝牙协议栈的精密分层体系中&#xff0c;其链路控制&#xff08;Link Control, LC&#xff09;层作为基带层的核心组件&#xff0c;承载着物理信道管理、连接建立与维护等关键任务。其互操作性要求直接决定了不同厂商设备能否实现无缝通信。本文将以蓝牙技术规范中的LC互操作…

算法每日一练 (25)

&#x1f4a2;欢迎来到张翊尘的技术站 &#x1f4a5;技术如江河&#xff0c;汇聚众志成。代码似星辰&#xff0c;照亮行征程。开源精神长&#xff0c;传承永不忘。携手共前行&#xff0c;未来更辉煌&#x1f4a5; 文章目录 算法每日一练 (25)四数之和题目描述解题思路解题代码c…

【大模型基础_毛玉仁】6.4 生成增强

目录 6.4 生成增强6.4.1 何时增强1&#xff09;外部观测法2&#xff09;内部观测法 6.4.2 何处增强6.4.3 多次增强6.4.4 降本增效1&#xff09;去除冗余文本2&#xff09;复用计算结果 6.4 生成增强 检索器得到相关信息后&#xff0c;将其传递给大语言模型以期增强模型的生成能…

【GCC警告报错4】warning: format not a string literal and no format arguments

文章主本文根据笔者个人工作/学习经验整理而成&#xff0c;如有错误请留言。 文章为付费内容&#xff0c;已加入原创保护&#xff0c;禁止私自转载。 文章发布于&#xff1a;《C语言编译报错&警告合集》 如图所示&#xff1a; 原因&#xff1a; snprintf的函数原型&#x…

【落羽的落羽 C++】模板简介

文章目录 一、模板的引入二、函数模板1. 函数模板的使用2. 函数模板的原理3. 函数模板的实例化4. 函数模板的匹配 三、类模板 一、模板的引入 假如我们想写一个Swap函数&#xff0c;针对每一种类型&#xff0c;都要函数重载写一次&#xff0c;但它们的实现原理是几乎一样的。在…

USB(通用串行总线)数据传输机制和包结构简介

目录 1. USB的物理连接电缆结构时钟恢复技术 2. USB的数据传输方式包&#xff08;Packet&#xff09; 3. 包的传输规则帧和微帧 4. 包的结构1. 同步字段&#xff08;Sync&#xff09;2. 包标识符字段&#xff08;PID&#xff09;3. 数据字段4. 循环冗余校验字段&#xff08;CRC…

【目标检测】【深度学习】【Pytorch版本】YOLOV3模型算法详解

【目标检测】【深度学习】【Pytorch版本】YOLOV3模型算法详解 文章目录 【目标检测】【深度学习】【Pytorch版本】YOLOV3模型算法详解前言YOLOV3的模型结构YOLOV3模型的基本执行流程YOLOV3模型的网络参数 YOLOV3的核心思想前向传播阶段反向传播阶段 总结 前言 YOLOV3是由华盛顿…

IdeaVim-AceJump

‌AceJump 是一款专为IntelliJ IDEA平台打造的开源插件&#xff0c;旨在通过简单的快捷键操作帮助用户快速跳转到编辑器中的任何符号位置&#xff0c;如变量名、方法调用或特定的字符串‌。无论是大型项目还是日常编程&#xff0c;AceJump 都能显著提升你的代码导航速度和效率。…

DayDreamer: World Models forPhysical Robot Learning

DayDreamer&#xff1a;用于物理机器人学习的世界模型 Philipp Wu* Alejandro Escontrela* Danijar Hafner* Ken Goldberg Pieter Abbeel 加州大学伯克利分校 *贡献相同 摘要&#xff1a;为了在复杂环境中完成任务&#xff0c;机器人需要从经验中学习。深度强化学习是机器人学…