vscode代码片段的设置与使用

在 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.mzph.cn/web/74400.shtml

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

相关文章

基于S函数的simulink仿真

基于S函数的simulink仿真 S函数可以用计算机语言来描述动态系统。在控制系统设计中&#xff0c;S函数可以用来描述控制算法、自适应算法和模型动力学方程。 S函数中使用文本方式输入公式和方程&#xff0c;适合复杂动态系统的数学描述&#xff0c;并且在仿真过程中可以对仿真…

做题记录:和为K的子数组

来自leetcode 560 前言 自己只会暴力&#xff0c;这里就是记录一下前缀和哈希表的做法&#xff0c;来自灵神的前缀和哈希表&#xff1a;从两次遍历到一次遍历&#xff0c;附变形题 正文 首先&#xff0c;这道题无法使用滑动窗口&#xff0c;因为滑动窗口需要满足单调性&am…

浅浅尝试Numpy的函数:

1.numpy.empty: numpy.empty方法用来创建一个指定形状&#xff08;shape&#xff09;&#xff0c;数据类型&#xff08;dtype&#xff09;且未被初始化的数组&#xff1a; numpy.empty(shape,dtype float,order C) 参数说明&#xff1a; shape:数组形状。 dtype:数据类型&am…

IM基本设计思路与有序ID的重要性

文章目录 概要问题解析思考问题数据基础读取写入总结 概要 说起IM程序我们都不陌生&#xff0c;本篇文章我们就为如何实现一个IM做一个简单的整体方案设计以及基本的数据结构 问题解析 我们先不上一大堆牛逼哄哄的中间件。 我们先从实现角度&#xff0c;来讲讲设计思路。 从…

数据结构学习

链表 单链表 头插 将x插到下标是k的点后面 将下标是k的点后面的点删掉 代码 // head 表示头结点的下标 // e[i] 表示节点i的值 // ne[i] 表示节点i的next指针是多少 // idx 存储当前已经用到了哪个点// 初始化 void init() {head -1;idx 0; }// 将x插到头结点 void add_to_…

0.DJI-PSDK开发准备及资料说明(基于DJI经纬M300RTK和M350RTK无人机上使用)

0.DJI-PSDK开发准备及资料说明&#xff08;基于DJI经纬M300RTK和M350RTK无人机上使用&#xff09; 【资料名称】 DJI经纬M300RTK和M350RTK无人机二次开发资料包。资料包在最下方的百度网盘 一、引言 在进行大疆无人机负载开发的过程中&#xff0c;我整理出一系列有价值的资…

Linux内核TCP/IP协议栈中的设计模式:从面向对象到系统级软件的跨界实践

引言 设计模式(Design Patterns)自GoF(Gang of Four)在1994年提出以来,已成为软件工程领域的核心概念。尽管其经典定义基于面向对象编程(OOP),但设计模式的本质是解决复杂问题的经验总结,而非局限于特定编程范式。本文以Linux内核的TCP/IP协议栈为例,探讨设计模式在…

第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组(部分题解)

文章目录 前言日期统计题意&#xff1a; 冶炼金属题意&#xff1a; 岛屿个数题意&#xff1a; 子串简写题意&#xff1a; 整数删除题意&#xff1a; 总结 前言 一年一度的&#x1f3c0;杯马上就要开始了&#xff0c;为了取得更好的成绩&#xff0c;好名字写了下前年2023年蓝桥…

处理JWT Token失效需求

JWT 本身是无状态的&#xff0c;这意味着服务器不会保存任何关于 Token 的状态信息。但为了支持 JWT 的状态管理&#xff08;例如&#xff1a;强制使某些 Token 失效&#xff09;&#xff0c;可以借助 Redis 这样的外部存储来维护一个黑名单或白名单。 安装必要的 NuGet 包 首…

PHP代码审计-01

&#x1f338; 连接方式 PHP Mysql连接方式&#xff1a; Mysql&#xff08;废弃&#xff09;MysqliPDO &#x1f338; 常见过滤 intval/addslashes/mysql_real_escape mysqli_escape_string/mysqli_real_escape_string/mysqli::escape_string PDO::quote 参数化查询 a…

SpringKafka错误处理:重试机制与死信队列

文章目录 引言一、Spring Kafka错误处理基础二、配置重试机制三、死信队列实现四、特定异常的处理策略五、整合事务与错误处理总结 引言 在构建基于Kafka的消息系统时&#xff0c;错误处理是确保系统可靠性和稳定性的关键因素。即使设计再完善的系统&#xff0c;在运行过程中也…

蓝桥杯2024JavaB组的一道真题的解析

文章目录 1.问题描述2.问题描述3.思路分析4.代码分析 1.问题描述 这个是我很久之前写的一个题目&#xff0c;当时研究了这个题目好久&#xff0c;发布了一篇题解&#xff0c;后来很多人点赞&#xff0c;我都没有意识到这个问题的严重性&#xff0c;我甚至都在怀疑自己&#xf…

性能比拼: Go标准库 vs Python FastAPI(第二轮)

本内容是对知名性能评测博主 Anton Putra Python (FastAPI) vs Go (Golang) (Round 2) Performance Benchmark 内容的翻译与整理, 有适当删减, 相关指标和结论以原作为准 介绍 这是第二轮关于 FastAPI 和 Golang 的对比测试。我几天前运行了前一次的基准测试&#xff0c;到目…

DeepSeek与ChatGPT的优势对比:选择合适的工具来提升工作效率

选DeepSeek还是ChatGPT&#xff1f;这就像问火锅和披萨哪个香&#xff01; "到底该用DeepSeek还是ChatGPT?” 这个问题最近在互联网圈吵翻天!其实这就跟选手机系统-样&#xff0c;安卓党iOS党都能说出一万条理由&#xff0c;但真正重要的是你拿它来干啥&#xff01;&am…

Python爬虫第4节-请求库urllib的request模块使用

目录 前言&#xff1a;基本库urllib的使用 一、urlopen方法 二、Request类 三、高级用法 前言&#xff1a;基本库urllib的使用 开始学习爬虫时&#xff0c;第一步就是要模拟浏览器给服务器发送请求。这个时候&#xff0c;你可能会有很多问题&#xff1a;该从哪里开始做呢&a…

Vue3 Pinia Store使用示例

代码示例&#xff1a; import { defineStore } from "pinia"; // 导入 Pinia 的 defineStore 方法 import { ref } from "vue"; // 导入 Vue 的响应式 API ref import { type Menu } from "/interface"; // 导入自定义的 Menu 类型/…

JavaScript逆向魔法:Chrome开发者工具探秘之旅

在前端开发和安全研究领域&#xff0c;JavaScript逆向工程是一项关键技能。它涉及分析和理解代码的执行流程、数据结构和逻辑&#xff0c;以发现潜在的安全漏洞、提取核心算法或实现功能兼容。本文将结合Chrome开发者工具的调试功能&#xff0c;并通过具体示例帮助你更好地理解…

Qt基础:资源文件

资源文件 1. 资源文件2. 资源文件创建 1. 资源文件 资源文件顾名思义就是一个存储资源的文件&#xff0c;在Qt中引入资源文件好处在于他能提高应用程序的部署效率并且减少一些错误的发生。 在程序编译过程中&#xff0c; 添加到资源文件中的文件也会以二进制的形式被打包到可执…

Agent TARS与Manus的正面竞争

Agent TARS 是 Manus 的直接竞争对手&#xff0c;两者在 AI Agent 领域形成了显著的技术与生态对抗。 一、技术架构与功能定位的竞争 集成化架构 vs 模块化设计 Agent TARS 基于字节跳动的 UI-TARS 视觉语言模型&#xff0c;将视觉感知、推理、接地&#xff08;grounding&#…

使用ssh连接上开发板

最后我发现了问题&#xff0c;我忘记指定用户名了&#xff0c;在mobaXterm上左上角打开会话&#xff0c;点击ssh&#xff0c;然后输入要连接的开发板主机的ip地址&#xff0c;关键在这里&#xff0c;要指定你要连接的开发板的系统中存在的用户&#xff0c;因为通过ssh连接一个设…