热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

VScode中自定义用户代码片段(Cusersnippet)自动生成C语言头文件排除重复包含...

2019独角兽企业重金招聘Python工程师标准环境WINDOWS2016VSCodev1.25.1C语言用户代码片段SNIPPET配置c.json内容{Placeyours

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

环境
  • WINDOWS 2016
  • VSCode v1.25.1
C语言用户代码片段SNIPPET配置c.json内容

 

{    // Place your snippets for c here. Each snippet is defined under a snippet name and has a prefix, body and // description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the // same ids are connected.// Example:"C header file": {        "prefix": "#ifndef","body": ["#ifndef __$1_h__","#define __$1_h__", "", "#ifdef __$1_h__GLOBAL", "\t#define __$1_h__EXTERN ", "#else", "\t#define __$1_h__EXTERN extern", "#endif", "", "$2", "#endif // __$1_h__", "", ],"description": "C header file define"    }
}
结果

输入#ifndef后按TAB

再输入 AUTO_GEN_SNIPPET , 再按TAB ,

输入  VOID hello(void)  就生成如下了:

#ifndef __AUTO_GEN_SNIPPET_h__
#define __AUTO_GEN_SNIPPET_h__#ifdef __AUTO_GEN_SNIPPET_h__GLOBAL#define __AUTO_GEN_SNIPPET_h__EXTERN
#else#define __AUTO_GEN_SNIPPET_h__EXTERN extern
#endifVOID HELLO(void);#endif // __AUTO_GEN_SNIPPET_h__

 

注意如果是头文件在VSCode中(右下角)要选择语言语言为C,不能为C++或其它,否则没有自动完成提示功能。

C.JSON修改保存后立即生效,不用重新启动VSC.

 

 

 自动生成一个更复杂的头

自动提取.h头文件名,并把文件名中的-或.改为_

snippet c.json

 

{"C head common": {"prefix": "#ifndef","body": ["/***********************************************************************"," * @file $TM_FILENAME"," ${1:${TM_FILENAME_BASE/(.*)/${1:/upcase}/i}}"," * @brief $2 header file"," * @history"," * Date Version Author description"," * ========== ======= ========= ======================================="," * $CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE V1.0 ${3|Wukong.SUN,Bajie.ZHU,Wuji.SA,Sanzhang.TANG,Baoyu.JIA|} Create"," *"," * @Copyright (C) $CURRENT_YEAR .cdWFVCEL. all right reserved","***********************************************************************/","#ifndef __${1/[.-]/_/g}_h__","#define __${1/[.-]/_/g}_h__", "", "#ifdef __${1/[.-]/_/g}_h__GLOBAL", "\t#define __${1/[.-]/_/g}_h__EXTERN ", "#else", "\t#define __${1/[.-]/_/g}_h__EXTERN extern", "#endif", "", "$4", "#endif // __${1/[.-]/_/g}_h__", "", ],"description": "C header file common define"    },}

结果

/************************************************************************ @file auto-gen.header.hAUTO-GEN.HEADER* @brief header file* @history* Date Version Author description* ========== ======= ========= =======================================* 2018-08-05 V1.0 Wukong.SUN Create** @Copyright (C) 2018 .cdWFVCEL. all right reserved
***********************************************************************/
#ifndef __AUTO_GEN_HEADER_h__
#define __AUTO_GEN_HEADER_h__#ifdef __AUTO_GEN_HEADER_h__GLOBAL#define __AUTO_GEN_HEADER_h__EXTERN
#else#define __AUTO_GEN_HEADER_h__EXTERN extern
#endif#endif // __AUTO_GEN_HEADER_h__
配置参考

https://www.cnblogs.com/a14907/p/6180244.html : [VS Code]跟我一起在Visual Studio Code 添加自定义snippet(代码段),附详细配置


转:https://my.oschina.net/SamXIAO/blog/1922800



推荐阅读
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • Python如何调用类里面的方法
    本文介绍了在Python中调用同一个类中的方法需要加上self参数,并且规范写法要求每个函数的第一个参数都为self。同时还介绍了如何调用另一个类中的方法。详细内容请阅读剩余部分。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
author-avatar
彭雅静政颖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有