VS 自动添加代码 | 使用snippet插入外部代码
2023-09-27 14:28:32 时间
效果演示:
说明:输入 sh ,按下Tab键,即可快速生成 show()函数。
详细步骤如下:(下面使用VS 2019界面演示)
文章目录
一、代码片段管理
1.【工具】——》【代码片段管理器】
2.选择【Visual C++】
3.选择【My Code Snippets】,复制上面文档的位置。
4.资源管理器中打开改目录
二、编写snippet文件
这里只简单的说明一下如何编写一个snippet文件,我们可以参考 Visudal C++ 提供的Snippets 编写自己的snippet文件。
以下博主编写的Show()函数代码,仅供参考:
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>show</Title>
<Shortcut>sh</Shortcut>
<Description>show 循环的代码片段</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
<SnippetType>SurroundsWith</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>vec</ID> # 标签
<Default>void</Default> # 默认值
<ToolTip>自动类型迭代容器元素</ToolTip> # 说明
</Literal>
</Declarations>
<Code Language="cpp"><![CDATA[
/* 注释:输出容器内部元素 */
template<class _Ty>
void Show(const _Ty& Container)
{
for (const auto& it : Container)
{
std::cout << it << " ";
}
std::cout << std::endl;
}
]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
唤醒词与变量
代码部分
经测试,代码部分的内容会在编译器中输出关键字后按照原样展开。而如果有变量,可以使用 $name$
的方式添加到代码中。
需要注意的是我们这里并没有用到变量,但这并不影响我们之前定义过变量。
三、添加snippet文件到工作目录
方法一:将文件直接拖到工作目录(如图所示)
方法二:在【代码片段管理器】中导入
四、其他代码片段示例代码
Visudal C++提供的snippet文件参考
在【代码片段管理器中】选择【Visudal C++】,记住目录位置
打开保存的目录,使用编辑器打开即可。
自定义的snippet文件参考
注释代码
函数(注释模板引用自:https://blog.csdn.net/ghevinn/article/details/44831841)
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>comment_func</Title>
<Shortcut>cf</Shortcut> # 唤醒词 cf
<Description>函数注释</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
<SnippetType>SurroundsWith</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>func</ID>
<Default>functions</Default>
<ToolTip>函数名</ToolTip>
</Literal>
</Declarations>
<Code Language="cpp"><![CDATA[
/**
* func_name: $func$
* 功能描述: $_$
* @param param1
* @param param2
* @param param3
*
* @return
*/
]]>
</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>file_comment</Title>
<Shortcut>cf</Shortcut> # 唤醒词 cf
<Description>文件注释</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
<SnippetType>SurroundsWith</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>fileName</ID> # 标签
<Default>fileName</Default> # 默认值
<ToolTip>文件名称</ToolTip> # 说明
</Literal>
</Declarations>
<Code Language="cpp"><![CDATA[
/*******************************************************************
* Copyright(c) 2000-2013 Company Name
* All rights reserved.
*
* 文件名称: $fileName$
* 简要描述:
*
* 创建日期:
* 作者:
* 说明:
*
* 修改日期:
* 作者:
* 说明:
******************************************************************/
]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
效果展示:
使用std::copy() 实现的输出函数
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>CShow</Title>
<Shortcut>csh</Shortcut> # 唤醒词 csh
<Description>使用std::copy 打印</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
<SnippetType>SurroundsWith</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Code Language="cpp"><![CDATA[
/* 输出容器内元素的值: _Ty 容器类型 _emT 打印类型 */
template<class _Ty,class _emT = int>
void CShow(const _Ty& cont)
{
std::copy(cont.cbegin(), cont.cend(), std::ostream_iterator<_emT>(std::cout, " "));
std::cout << std::endl;
}
]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
效果展示:
查看已添加的自动代码
在代码片段管理器中可以看到在目录F:\....
下的所有snippet文件,其中函数的说明,快捷方式等都标注在右侧。
想更改这些信息也非常容易,只需修改对应文件上的对应标签内的内容即可。如下所示:
相关文章
- 为什么企业里用 VS Code 的这么多?
- __proto__ VS. prototype in JavaScript
- WCF - net.pipe vs. net.tcp vs. http Bindings
- Minikube vs. kind vs. k3s vs k3d vs MicroK8s
- Category VS Extension 原理详解
- class-metaclass-Class vs. type
- Visual Studio 基础 之 VS 代码结构自动生成类图,类设计器的简单安装和使用
- macOS设置vs code为git默认编辑器
- VS Code中编译调试C++程序(带资源文件)
- 第一节:OSI模型 vs TCP/IP模型
- VS 命令提示工具