原文:https://www.cnblogs.com/huguodong/p/12694902.html

一、前言

VisualStudio 可以通过敲出缩写字符串,然后按两次Tab按键自动展开成一段对应语义的代码。

敲缩写cw:
  
  然后按两次Tab会自动展开成

我们可以通过VisualStudio中的代码段管理器自定义这样的缩写字符串和其展开后的字符串。

二、内置片段

点击 “工具”->“代码段管理器”

可以看到名称为”cw“的配置文件定义了上面说的缩写“cw”的自动自动展开功能。

三、自定义代码片段

系统内置“class”代码片段以供我们快速的创建类,但是却没有创建方法的代码段,现在我们自定义一个方法的代码片段。

1.找到“class”片段的位置并打开

仔细看一下这份XML其实可以发现关键的地方就三处.

①上面的Shortcut标签定义了缩写字符串。

②中间Declaration标签定义了所需要的变量。

③<Code>xxx</Code>标签定义了输出的格式。

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>LinGeneric example</Title>
<Shortcut>Lin 快捷方式</Shortcut>
<Author>Lin</Author>
<Description>Generic explam</Description>
</Header>
<Snippet>
<Code Language="CSharp">
<![CDATA[ 贴入代码 ]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>

2.新建me.snippet文件,并改动为如下内容。

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>me</Title>
<Shortcut>me</Shortcut>
<Description>方法的代码片段</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
<SnippetType>SurroundsWith</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>name</ID>
<ToolTip>方法名</ToolTip>
<Default>MyMethod</Default>
</Literal>
</Declarations>
<Code Language="csharp"><![CDATA[public void $name$()
{
$selected$$end$
}]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>

3.工具》代码片段管理》Csharp》导入该代码片段

4.代码里敲“me”

5.双击Tab自动展开:

So,对于使用非常频繁又很长的代码段,就可以通过在VisualStudio中自定义配置文件来减轻自己的工作量啦。

四、其他

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>ptres</Title>
<Shortcut>ptres</Shortcut>
<Description>生成POST异步Action返回方法</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
<SnippetType>SurroundsWith</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>name</ID>
<ToolTip>方法名</ToolTip>
<Default>Action</Default>
</Literal>
</Declarations>
<Code Language="csharp"><![CDATA[
[HttpPost]
public async Task<IActionResult> $name$()
{
$selected$$end$
return Ok();
}]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>gtres</Title>
<Shortcut>gtres</Shortcut>
<Description>生成GET异步Action返回方法</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
<SnippetType>SurroundsWith</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>name</ID>
<ToolTip>方法名</ToolTip>
<Default>Action</Default>
</Literal>
</Declarations>
<Code Language="csharp"><![CDATA[
[HttpGet]
public async Task<IActionResult> $name$()
{
$selected$$end$
return Ok();
}]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>

VisualStudio2019 利用代码片段管理器新建快捷命令的更多相关文章

  1. WPF技巧:通过代码片段管理器编写自己常用的代码模板提示效率

    在写自定义控件的时候,有一部分功能是当内部的值发生变化时,需要通知控件的使用者,而当我在写依赖项属性的时候,我可以通过popdp对应的代码模板来完成对应的代码,但是当我来写属性更改回调的时候,却发现没 ...

  2. YASnippet - emacs 的代码片段管理工具

    添加 snippet M-x 然后输入 yas-new-snippet 回车 RET,会出现一个新的 buffer # -*- mode: snippet -*- # name: # key: # - ...

  3. virt-manager管理器新建虚拟机时出错:unsupported format character

    启动管理器出错:unsupported format character ‘��0xffffffef) at index 30 经验证,解决办法如下: 1.获取virt-manager的rpm包,并强 ...

  4. 解决“程序包管理器控制台”输入命令找不到Nuget包问题

    问题: 问题原因: Nuget源的地址上不去 解决办法: 1.将Nuget源更新为可以国内使用的官方Nuget源. 1)打开VS2013:工具-->Nuget程序包管理器-->程序包管理器 ...

  5. mac包管理器Homebrew安装命令

    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

  6. ubuntu下包管理器apt-get常用命令

    apt-cache search package 搜索包 apt-cache show package 获取包的相关信息,如说明.大小.版本等 sudo apt-get install package ...

  7. centos7 安装dnf包管理器和常用命令

    Installing DNF Currently the DNF package comes from the EPEL repository, so if your Linux system is ...

  8. VS2017自定义代码片段, 实现快捷输入

    点击VS2017的工具→代码片段管理器, 下图: 语言选择C#, 路径定位到 Visual C#, 然后复制这个路径在电脑中打开 这里以增加 crk 快捷方式输出 Console.ReadKey()来 ...

  9. 创建自己的代码片段(CodeSnippet)

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

随机推荐

  1. Natasha 4.0 探索之路系列(一) 概况

    Natasha 简介 Natasha 是一个基于 Roslyn 的动态编译类库, 它以极简的 API 完成了动态编译的大部分功能, 使用它可以在程序运行时编译出新的程序集. Natasha 允许开发人 ...

  2. VueRouter学习01-基本使用

    ## 基本使用: 1. 创建一个`VueRouter`对象:`new VueRouter()`. 2. 在`VueRouter`中,需要传递一个`routes`参数.这个参数是一个数组类型,数组中存储 ...

  3. 一段关于java NIO server端接受客户端socket连接;演示了关于channel,selector等组件的整合使用

    public class ReactorDemo { public static void main(String[] args) throws IOException { ServerSocketC ...

  4. gorm中动态使用表名

    用户表(前台.后台) type User struct { ID int `gorm:"primaryKey;autoIncrement"` Name sql.NullString ...

  5. golang中的原子操作atomic包

    1. 概念 原子操作 atomic 包 加锁操作涉及到内核态的上下文切换,比较耗时,代价高, 针对基本数据类型我们还可以使用原子操作来保证并发的安全, 因为原子操作是go语言提供的方法,我们在用户态就 ...

  6. WTM多租户改造

    首先简单说下多租户的几种实现方式 多租户(Multi-Tenant ),即多个租户共用一个实例,租户的数据既有隔离又有共享,说到底是要解决数据存储的问题. 常用的数据存储方式有三种. 方案一:独立数据 ...

  7. 6. java IO 流

    一.流的分类: * 1.操作数据单位:字节流.字符流 * 2.数据的流向:输入流.输出流 * 3.流的角色:节点流.处理流 *二.流的体系结构 * 抽象基类               节点流(或文件 ...

  8. MybatisPlus多表连接查询

    一.序言 (一)背景内容 软件应用技术架构中DAO层最常见的选型组件为MyBatis,熟悉MyBatis的朋友都清楚,曾几何时MyBatis是多么的风光,使用XML文件解决了复杂的数据库访问的难题.时 ...

  9. OPENCV中Line2D对象的意义

    这个对象有四个属性值 VY/VX就是直线的斜率,这俩值代表着直线的归一化向量 X,Y就是直线上的任意一点 直线方程计算如下:

  10. linux 设置connect 超时代码[select/epoll]

    转载请注明来源:https://www.cnblogs.com/hookjc/ linux下socket编程有常见的几个系统调用: 对于服务器来说, 有socket(), bind(),listen( ...