片段

片段（Snippet）是一个编程用语，指的是源代码、机器码、文本中可重复使用的小区块。通常它们是有正式定义的运行单位，以纳入更大的编程模块。片段经常用来明晰其他“凌乱”函数的功用，或尽量减少使用与其他函数共用的重复代码。
片段管理是某些文本编辑器、程序源代码编辑器、IDE、与相关软件的其中一项功能。其使得用户能够在反复的编辑作业中保持和使用这些片段。

概要

片段管理是文本编辑器一项受欢迎的功能，诸如软件开发人员，经常要求从目录重复输入文字（像是源代码或模板文件）。由于每次输入的内容变化相当轻微（或者完全相同），因此可以把可重复使用的代码分区存储，方便除错与加速开发。
iWeb或一些博客系统允许用户编辑HTML片段，在文章区域外加入像是气象报告之类的Web widget小工具或AdSense网络广告等。

在文本编辑器

包括此功能的文本编辑器通常提供一种机制来管理目录，并以和操作系统允许管理不同文件同样的方式来区别“片段”。这些包括操作的基本管理能力，有查看、添加、编辑、删除、排序、筛选、分组、重命名、存储片段在储藏库、目录或数据库 。

在IDE环境

一些开发人员的应用程序，如微软的Visual Studio（关键字和Tab ↹），与其他的集成开发环境，包含内置结构部分以易于编码。
其他应用程序像是Macromedia Dreamweaver，同样利用这些代码片段在网页开发上。

在JIT编译器

及时编译（JIT）编译器能够将预先编译的代码部分“拼接在一起”，成为一段较长的目标代码/机器码分段。这能显著地减少演绎时间，同时促进运行效率。

片段编程功能

支持脚本片段的应用程序，所支持的程度编程功能各不相同。下面枚举一些常用的可编程片段功能。

纯文字

虽然纯文字是应用程序的一项基本功能，只支持非可编程的“静态”片段，不过可编程片段也用来和纯文字一起运作。
然而常见的复杂问题，支持可编程片段的环境经常要辨别哪些是“纯文字”、哪些算作“程序指令”。更复杂化这种辨识的是，事实上支持可编程片段的应用程序几乎总是包括支持认识多种编程语言，以及强调显示基本语法标亮或运行嵌入式命令。
基于诸如此类理由，可编程片段所夹带的纯文字总需要特别小心，以避免语法和定界符冲突。

常量与变量

可编程片段往往有能力将现有的变量范围或名字空间做结合，用户可以从中任意选择各种常量或变量。这可能包括一些值，像是当前登录用户的电子邮件地址、当前系统时间和日期、或函数的输出值。
脚本片段往往与一或多个当前可用文件关系。因此，变量可能还包括环境变量和指定档名的参数、光标位置、母目录、和其他有关当前编辑文件的状态数据。

演绎码

脚本片段可能允许运行一或多个编程语言的代码。这可能包括一或多独立的语言，或在特定应用程序中为主体的语言。

填空占位符

脚本片段通常包括一项制度，指定的用户提供值不会确定，直到片段项目的文本在编辑中被插入或激活。有些应用程序定义的特殊标记语法，允许编辑器确定相对于当前编辑缓冲器其他文本的占位符边界。
其他采用图形用户界面和模式对话框的应用程序，允许用户输入一或多个提供给占位符的值。

占位符识别符

占位符通常用一些特殊字符或序列表示，以区别它们是来自其他片段文本。有些系统允许片段占位符被命名为识别符。该识别符可能有助于支持占位符复制或占位符转换之类的功能。
以下示例使用识别符first_name、last_name和item：
Hello {%first_name%} {%last_name%},

Your shipment of {%item%} is now ready to pick up.

Thanks {%first_name%}!

占位符复制

这功能允许用户标示出提供给一个占位符的值，该占位符相对于可编程片段的整个文本，应该复制到多个地方。在前述示例中，命名的占位符first_name就是这种用法的一个例子。

占位符转换

这功能允许用户标示一或多个值提供给一个占位符，该占位符应该在可编程片段文本内其他地方被复制与转换。例如，用户可能会在一个片段部分，提供一个文件标题，并指定文件标题应在其他地方重复，第一个实例作全字母大写，其他实例变小写。