zl程序教程

您现在的位置是:首页 >  工具

当前栏目

VS 自动添加代码 | 使用snippet插入外部代码

vs自动代码 添加 插入 外部 使用
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文件,其中函数的说明,快捷方式等都标注在右侧。在这里插入图片描述
想更改这些信息也非常容易,只需修改对应文件上的对应标签内的内容即可。如下所示:

在这里插入图片描述

在这里插入图片描述