前言

工作中经常会写一些重复的代码片段,如自动属性、for循环、Action等等,针对这种情况,VisualStudio已经给我们提供了一个非常方便的功能——代码片段,是我们可以简单的输入几个字母就能生成大段代码。

但是,工作中总会遇到一些重复代码是VisualStudio没有提供的,这时就需要我们自己去编写片段模板了,本文我将简单讲一下如何创建并使用自己的代码片段。

一、模板文件在哪

在工具-代码片段管理器(快捷键Ctrl+K,B)可以打开代码片段管理器,如下图:

选择模板所属语言,之后就可以看到该语言所拥有的分组,点开分组就可以看到组内的片段模板了,如下图:

在这里就可以看到模板所在的路径了

从资源管理器进入该路径就可以看到后缀名为Snippet的模板文件了,该文件本质为XML文件,可以直接用VS或记事本打开编辑。

二、模板文件格式

打开后的模板文件是这样的(这里以for为例),各个节点对应的含义我做出了备注

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  3. <CodeSnippet Format="1.0.0">
  4. <Header>
  5. <Title>for</Title> <!--显示在提示界面及管理器中的标题-->
  6. <Shortcut>for</Shortcut> <!--调用时的快捷代码及管理器中的快捷方式-->
  7. <Description>for 循环的代码片段</Description> <!--显示在提示界面及管理器中的描述-->
  8. <Author>Microsoft Corporation</Author> <!--显示管理器中的作者信息-->
  9. <SnippetTypes> <!--显示管理器中的片段类型,这段一般只保留Expansion即可-->
  10. <SnippetType>Expansion</SnippetType> <!--扩展类型,基本所有片段模板均包含此类型-->
  11. <SnippetType>SurroundsWith</SnippetType> <!--外侧代码,可在光标所在代码外围插入该代码块,快捷键Ctrl+K,S-->
  12. <!--有的模板还是Refactoring类型,该类型没有快捷键,也不包含Expansion类型,我们这里不多说明了-->
  13. </SnippetTypes>
  14. </Header>
  15. <Snippet>
  16. <Declarations> <!--模板变量-->
  17. <Literal>
  18. <ID>index</ID> <!--变量ID,在模板中通过$ID$的方式调用-->
  19. <Default>i</Default> <!--变量默认值-->
  20. <ToolTip>索引</ToolTip> <!--焦点在变量上时变量的注释-->
  21. </Literal>
  22. <Literal>
  23. <ID>max</ID>
  24. <Default>length</Default>
  25. <ToolTip>最大长度</ToolTip>
  26. </Literal>
  27. </Declarations>
  28. <!--下面是模板内容-->
  29. <Code Language="csharp"><![CDATA[for (int $index$ = 0; $index$ < $max$; $index$++)
  30. {
  31. $selected$ $end$
  32. }]]>
  33. </Code>
  34. </Snippet>
  35. </CodeSnippet>
  36. </CodeSnippets>

我们创建模板时可以直接导出一份VS自带的模板进行更改,代码主体写在Code标记处,用<![CDATA[和]]>括起来

我们可以看到,上面的模板中还有两个标识并没有在Declarations中声明,分别如下

$selecteds$ 因为该代码片段是扩展类型,编码时可在当前选定代码外围添加(Ctrl+K,S),故此标识代表当前所选代码

$end$  此标识表示结束时(变量调整好后按Enter或者没变量片段的初始)光标所处位置

三、模板文件导入

这个就简单了,将编辑好的模板直接拷贝到系统模板所在的路径下就可以了。

作者:Vulper

欢迎转载,转载请注明出处!

创建自己的代码片段(CodeSnippet)的更多相关文章

  1. Visual Studio使用技巧,创建自己的代码片段

    1.代码片段的使用示例 在编写代码中常会使用代码片段来提高我们的编写代码的效率,如:在Visual Studio中编写一个 for(int i = 0; i < length;i++) { } ...

  2. 2019-01-29 VS Code创建自定义Python代码片段

    续前文[日常]Beyond的歌里最多是"唏嘘"吗? - Python分词+词频最后的想法, 发现VS Code支持用户自定义代码片段: Creating your own snip ...

  3. 微信小程序代码片段

    微信小程序代码片段是一种可分享的小项目,可用于分享小程序和小游戏的开发经验.展示组件和 API 的使用.复现开发问题等等.分享代码片段会得到一个链接,所有拥有此分享链接的人可以在工具中导入此代码片段. ...

  4. visual studio code开发代码片段扩展插件

    背景 visual studio code编辑器强大在于可以自己扩展插件,不仅可以去插件市场下载,也可以按照官方的API很方便的制作适合自己的插件: 自己最近在开发一个手机端网站项目,基于vant项目 ...

  5. visual studio制作代码片段

    使用 Visual Studio 的代码片段功能,我们可以快速根据已有模板创建出大量常用的代码出来.ReSharper 已经自带了一份非常好用的代码片段工具,不过使用 ReSharper 创建出来的代 ...

  6. Sublime Text自定制代码片段(Code Snippets)

    在编写代码的整个过程中,开发人员经常会一次又一次的改写或者重用相同的代码段,消除这种重复过程的方法之一是把我们经常用到的代码保存成代码片段(snippets),这使得我们可以方便的检索和使用它们. 为 ...

  7. VS Code项目中共享自定义的代码片段方案

    VS Code项目中共享自定义的代码片段方案 一.问题背景 项目中注释风格不统一,如何统一注释风格 一些第三方组件库名称太长,每次使用都需要找文档,然后复制粘贴 部分组件库有自己的Snippets插件 ...

  8. subllime text 创建可复用的代码片段

    对于前端工程师来讲,写一个html页面的基本结构是体力活,每次去拷贝一个也麻烦,sublime text 2 提供了一个很好的复用代码片段.下面介绍一下创建一个html5的代码片段的过程. 在菜单上点 ...

  9. Sublime Text 2创建可复用的代码片段

    对于前端工程师来讲,写一个html页面的基本结构是体力活,每次去拷贝一个也麻烦,sublime text 2 提供了一个很好的复用代码片段.下面介绍一下创建一个html5的代码片段的过程.在菜单上点击 ...

随机推荐

  1. ssh代理上网

    背景: 公司开发机没有外网,但可以通过ssh连接到另一台可以上公网的机器,所以想通过ssh代理的方式上网,简单又方便,而且需要的时候上,不需要的时候也可以不上 配置: 超级简单 在开发机上建立ssh隧 ...

  2. 使用可视化图表对 Webpack 2 的编译与打包进行统计分析

    此文主要对使用可视化图表对 Webpack 2 的编译与打包进行统计分析进行了详细地讲解,供您更加直观地参考. 在之前更新的共十七章节中,我们陆续讲解了 Webpack 2 从配置到打包.压缩优化到调 ...

  3. Idea 常用功能汇总,工作中常用技巧

    1.隐藏没用到的文件 比如 IDEA 的项目配置文件(.iml 和.idea),打开 Settings-File Types, 加入要隐藏的文件后缀.  2.常用技巧 2.1 通过Alt+F8查看变量 ...

  4. oracle创建数据库到2%不动问题

  5. Spring+TaskExecutor实例

    1 taskExcutor package com.test; import org.springframework.core.task.TaskExecutor; public class Main ...

  6. ip地址0.0.0.0与127.0.0.1的区别(转载)

    原文链接:http://blog.csdn.net/ttx_laughing/article/details/58586907 最近在项目开发中发现一个奇怪的问题,当服务器与客户端在同一台机器上时,用 ...

  7. c#中foreach的一种用法

    以下定义的MyClass类中的addnum方法使用了一个数组型参数b: public class MyClass { ; public void addnum(ref int sum, params ...

  8. Linux常用操作命令(三)

    查看linux日志某几行 用逆序显示命令tail查看 命令格式:tail [  -r ] [  -n Number ] [ File ] [一]从第3000行开始,显示1000行.即显示3000~39 ...

  9. 9.Smarty的循环

    1.session循环 目的:循环输出一个二维数组 构造一个二维数组 $towSide = array( array("name"=>"caimuqing" ...

  10. php实现人员的权限管理

    权限是指不同的人员登录以后会用不同的页面. 一.想好这个权限是什么? 肯定要有用户表.还有用户所用的角色.然后就是权限功能表:可是在这里面有关联也就 是会另外有两张相互关联的表,这样也就是5张表 在数 ...