VSCode中添加自定义代码片段

news2024/11/20 23:30:21

目录

VSCode中添加自定义代码片段

基本操作

辅助工具


VSCode中添加自定义代码片段

基本操作

  1. 打开Visual Studio Code设置,选择Snippets

  1. 在弹出的窗口中选择新建全局片段文件

如果只想为当前工作目录设置片段文件则选择第二个
  1. 输入新全局片段文件的名称
这个文件名称与将来的快捷名称没有关系

  1. 在生成的文件中输入下面的内容:
"Print to console": {
        "scope": "javascript,typescript",
        "prefix": "log",
        "body": [
            "console.log('$1');",
            "$2"
        ],
        "description": "Log output to console"
    }

内容解释:

    1. "Print to console":引号中填写当前代码片段的描述文字
    2. "scope":值的引号中填语言类型文件的后缀,例如C++源文件就输入cpp,Java字节文件就输入java
    3. "prefix":值的引号中填写当前代码片段的提示词
    4. "body"[]中填写由双引号包裹、逗号结尾的字符串
    5. "description":值的引号中填写代码片段的作用描述
  1. 输入需要生成的内容,以下面的内容为例:
{
    "Print to console": {
        "scope": "cpp",
        "prefix": "merge-sort",
        "body": [
            "void _MergeSort(int* data, int* tmp, int left, int right)",
            "{",
            "    //确定递归结束条件",
            "    if (left == right)",
            "    {",
            "        return;",
            "    }",
            "",
            "    //分割数组,首先确定当前数组的中间位置",
            "    int mid = (left + right) / 2;",
            "    _MergeSort(data, tmp, left, mid);",
            "    _MergeSort(data, tmp, mid + 1, right);",
            "",
            "    //取小的数值尾插到tmp数组中",
            "    int begin1 = left;",
            "    int end1 = mid;",
            "    int begin2 = mid + 1;",
            "    int end2 = right;",
            "    int i = left;",
            "    while (begin1 <= end1 && begin2 <= end2)",
            "    {",
            "        if (data[begin1] < data[begin2])",
            "        {",
            "            tmp[i++] = data[begin1++];",
            "        }",
            "        else",
            "        {",
            "            tmp[i++] = data[begin2++];",
            "        }",
            "    }",
            "    //存在一个数组先走完的情况",
            "    while (begin1 <= end1)",
            "    {",
            "        tmp[i++] = data[begin1++];",
            "    }",
            "",
            "    while (begin2 <= end2)",
            "    {",
            "        tmp[i++] = data[begin2++];",
            "    }",
            "",
            "    //排序完之后将tmp数组中的数据拷贝回原来的数组",
            "    memcpy(data + left, tmp + left, sizeof(int) * (right - left + 1));",
            "}",
            "",
            "//归并排序递归版",
            "void MergeSort(int* data, int sz)",
            "{",
            "    //因为需要将排序好的数据重新拷贝到原来的数组中,所以需要开辟数组",
            "    int* tmp = (int*)malloc(sizeof(int) * sz);",
            "    assert(tmp);",
            "    //防止主函数递归导致每次都会重新开辟空间,所以使用子函数",
            "    _MergeSort(data, tmp, 0, sz - 1);",
            "    free(tmp);",
            "}",

        ],
        "description": "归并排序"
    }
}

上面的代码主要生成了一个描述文字为「归并排序」,代码片段适用的文件范围为后缀为.cpp的文件,代码片段提示为「merge-sort」,内容为归并排序的代码,描述为「归并排序」的代码片段

根据适用范围创建一个文件,后缀名为.cpp,使用效果如下:

输入后按下Tab或者Enter即可生成"body"的内容,效果如下:

辅助工具

因为"body"中需要生成用双引号包裹,逗号结尾的字符串,如果代码片段内容过多则手动添加双引号和逗号比较麻烦,为了简化这个步骤,可以适用下面的两个代码快速根据已有的代码生成指定的用双引号包裹,逗号结尾的字符串

C++版本:

#include <fstream>
#include <string>

int main() {
    std::ifstream inputFile("引号内部填写源代码文件路径");
    std::ofstream outputFile("引号内部填写目标代码文件路径(注意不要与源代码文件路径一致)");

    std::string line;
    while (std::getline(inputFile, line)) {
        outputFile << "\"" << line << "\",\n";
    }

    return 0;
}

Java版本:

public class Test {
    public static void main(String[] args) throws Exception{
        BufferedReader bufferedReader = new BufferedReader(new FileReader("引号内部填写源代码文件路径"));
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("引号内部填写目标代码文件路径(注意不要与源代码文件路径一致)"));
        String s = null;
        while ((s = bufferedReader.readLine()) != null) {
            bufferedWriter.write("\"" + s + "\",\n");
        }

        bufferedWriter.close();
        bufferedReader.close();
    }
}

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

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

相关文章

Redis学习(十二)连接数不足报错及分析修复:ERR max number of clients reached.

目录 一、问题介绍二、问题分析2.1 redis-cli 登录2.2 info clients 查看连接数情况2.3 client list 查看具体连接情况2.4 分析连接空闲时长2.5 client list 根据客户端IP统计连接数 三、问题结论和解决3.1 问题结论&#xff1a;3.2 解决方案①&#xff1a;优化程序3.3 解决方案…

execl表格批量换行问题

我拿到了一份execl表格。需要用代码去读每一行。 当我点击wps中的换行的时候。显示已经换行了。 但是我双击图表的时候&#xff0c;显示换行并没有生效。 还是在cell单元格里有很多行。 此时&#xff0c;ctrlf打开替换按钮。 选择替换的内容&#xff1a;altenter 按住alten…

轨迹预测升级:如何让自动驾驶汽车从意图与风险中真正读懂“人心”?

导读&#xff1a; 本篇文章提出了一种基于联合预测的轨迹预测模型&#xff0c;包括交互模块、意图模块和风险评估模块。实验结果表明&#xff0c;本文模型在正常场景中保持高准确性&#xff0c;并且展现了在事故场景中应对具有挑战性或者突发情况的潜力。©️【深蓝AI】编译…

重学SpringBoot3-集成Redis(九)之共享Session

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞&#x1f44d;收藏⭐评论✍ 重学SpringBoot3-集成Redis&#xff08;九&#xff09;之共享Session 1. 为什么需要 Session 共享2. Spring Session 和 Redis 的集成2.1. 引入依赖2.2. 配置 Redis 连接…

车辆重识别(2022ACM SIGGRAPH调色板:图像到图像的扩散模型)论文阅读2024/10/09

[2] Palette: Image-to-Image Diffusion Models ( ACM SIGGRAPH 2022) 作者&#xff1a;Chitwan Saharia、William Chan、Huiwen Chang 单位&#xff1a;Google Research, Brain Team 摘要&#xff1a; 本文基于条件扩散模型开发了一个统一的图像到图像翻译框架&#xff0c;并…

无人机避障——4D毫米波雷达点云滤波去噪(四)

噪声的来源&#xff1a; 对于4D毫米波雷达的前后两帧点云数据进行去噪&#xff0c;可以采用多种方法。首先&#xff0c;需要了解点云数据的噪声来源&#xff0c;可能是由于硬件限制、环境干扰或目标本身的反射特性等因素造成的。噪声点通常包括漂移点、孤立点、冗余点和混杂点…

【通过zip方式安装mysql服务】

通过zip方式安装mysql服务 Mysql安装包下载mysql安装及环境配置1.解压缩配置环境变量初始化mysql配置安装mysql服务启动MySQL服务连接mysql修改root用户密码 Mysql安装包下载 通过访问mysql官网下载&#xff1a;mysql下载地址 mysql安装及环境配置 1.解压缩 下载完成后&am…

YOLOv10改进策略【注意力机制篇】| GAM全局注意力机制: 保留信息以增强通道与空间的相互作用

一、本文介绍 本文记录的是基于GAM注意力模块的YOLOv10目标检测改进方法研究。GAM注意力模块通过3D排列和重新设计的子模块&#xff0c;能够在通道和空间方面保留信息&#xff0c;避免了先前方法中由于信息减少和维度分离而导致的全局空间-通道交互丢失的问题。本文利用GAM改进…

『网络游戏』角色创建界面逻辑【11】

创建代码&#xff1a;CreateWnd.cs 编写脚本&#xff1a;CreateWnd.cs 绑定脚本 修改脚本&#xff1a;LoginWnd.cs 绑定事件 修改脚本&#xff1a;Constans.cs 修改脚本&#xff1a;LoginSys.cs 修改脚本&#xff1a;LoginWnd.cs 拖拽框选 运行项目 - 点击开始进入创建角色界面…

柯桥外语培训韩语学习考级韩语中TOPIK常用语法表达

-기 위해서는 -는 것이 좋다 为了......&#xff0c;......比较好 -는 것보다는 -는 것이 좋다 比起......&#xff0c;......比较好 -(으)려면 -아/어/야 한다 如果想......的话&#xff0c;得...... -왜냐하면 -기 때문이다 因为...... -그 이유는 -기 때문이다 理由是…

TinyOS 点对基站通信

文章目录 一、前言1.1 发包的BlinkToRadio的数据包格式 二、混淆基站源码分析2.1 Makefile2.2 组件连接2.3 主逻辑代码 一、前言 1.1 发包的BlinkToRadio的数据包格式 如下&#xff0c;注意&#xff1a;AM层类型(1byte)即handlerID使可以在组件中修改的。 二、混淆基站源码…

专访:青年制片人林苏楠给影视行业新人的建议

近十年&#xff0c;对影视行业抱有浓厚兴趣&#xff0c;并进入专业院校学习的年轻人越来越多。但他们中的很多人毕业后却选择了其他行业&#xff0c;或者从事影视行业几年后决定转行。这其中的缘由似乎一部分来源于年轻创作者对真实的影视市场的不了解和不适应。 我们这次采访…

GC9118S替代TMI8118的优势分析,可应用在牙刷,电子锁,医疗设备等产品中

GC9118S作为一种新型集成电路&#xff0c;逐渐被视为TMI8118的理想替代品。以下是GC9118S在多个方面的优势&#xff0c;使其能够有效替代TMI8118。 1. 低功耗设计 GC9118S在功耗方面进行了优化&#xff0c;使其在待机和工作状态下都能显著降低能耗。这对于电池供电的设备&…

SpringBoot高级并发实践:自定义线程池与@Async异步调用深度解析

文章目录 同步编程&异步编程线程池为什么要使用线程池&#xff1f;Spring自定义线程池SpringBoot轻松调用线程池总结 测试demo链接 同步编程&异步编程 在Java并发编程中&#xff0c;同步和异步是两种常见的处理方式。 同步是指多个任务按顺序执行&#xff0c;一个任务的…

虚拟机三种网络配置方式随笔

1.1桥接模式 虚拟机和物理机同时直接连接物理网络&#xff08;均作为独立主机&#xff09; 桥接模式下&#xff0c;虚拟主机与真实主要在VMnet0构成的局域网内通信&#xff0c;同时通过真实主机中的网关与外网通信。由上表可看出&#xff0c;VMnet0直接连接到真实主机的某块真…

AGI时代存内计算芯片的语音识别之旅 —— 知存科技开发板体验与感悟

目录 一、简介二、活动内容2.1 多模态时代&#xff0c;存内计算框架的应用与发展1、多模态时代计算需求2、存内计算技术3、知存科技存内产品 2.2 分布式环境下深度学习任务的高效可靠执行研究2.3 IGZO在后道单片三维集成中的机遇与挑战1、IGZO的背景2、IGZO的优势3、IGZO器件的…

OpenStack 创建自定义的QCOW2格式镜像

目录 创建kvm虚拟机 创建目录上传ISO镜像 将 CentOS 7.4 上传到 /soft 目录下 创建 kvm虚机 使用的磁盘文件 配置kvm虚拟机 修改 KVM 虚机网络配置文件 安装 cloud-init 软件包 编辑 cloud.cfg 文件 编辑 network 文件 编辑 grub 文件 关闭kvm虚拟机 创建 QCOW2 镜…

10.8 C高级-shell脚本3

1、思维导图&#xff1a; 2、练习 分支结构结合test指令完成一下编程 1>判断闰年 2>输入一个数判断是否为偶数 3>使用test指令实现等级判断 90--100A 60--89B 0-50C 其他错误 代码&#xff1a; #!/bin/bash #分支结构结合test指令完成以下编程 #1判断是否闰年 read …

工业网关设备在智能制造中的应用有哪些?天拓四方

工业网关设备是一种用于连接工业设备和物联网子系统的设备&#xff0c;它能够实现数据采集、远程监控、远程控制和数据传输等功能。基于强大的数据处理和传输能力&#xff0c;工业网关设备能够实时采集各种工业设备的运行数据&#xff0c;并将其传输到云平台或数据中心进行存储…

【java】final关键字详解

&#x1f680; 个人简介&#xff1a;某大型国企资深软件开发工程师&#xff0c;信息系统项目管理师、CSDN优质创作者、阿里云专家博主&#xff0c;华为云云享专家&#xff0c;分享前端后端相关技术与工作常见问题~ &#x1f49f; 作 者&#xff1a;码喽的自我修养&#x1f9…