## 什么是代码片段 代码片段又叫文本片段,它是指一小段经常使用的文本的集合。比如可以把经常使用的注释信息、函数的头部说明信息、还有一些反复的编程语句等。通常的来说,代码片段都比较的小,你不应该把一个巨大的文本定义为片段。因性能考虑,EverEdit对每个代码片段的大小限定为2000个字符(因转义处理,实际输入的字符可能会略小于2000)。 ## 格式 文本片段有一定格式,按照该格式存储的文本,在插入到文档的时候会做出一些特殊的动作。当然您也可以不使用任何格式,就把它当成一个普通的文本管理器。典型的文本片段如下: ``` for (${1:unsigned int} ${2:i} = ${3:0}; $2 ${4:<} ${5:count}; $2${6:++}) { $0 } ``` ## 代码片段的使用 在文本片段中,有几个概念: * 变量定义 * 变量引用 * 变量间跳转 * 最后光标位置 ## 变量定义 变量的定义非常简单,比如:`${1:myvar}`。其中数字1表示该变量的序号,在EverEdit中最多支持9个变量1-9,而0则指示着最后一次光标定位的位置。 **注意**:变量最好按照大小顺序定义。变量不支持嵌套,也就是说变量里面不可以定义变量。比如不支持下面的格式:`${1:data ${2:text}}` ## 变量引用 变量定义完之后,如需引用的话,可以使用美元符号后接数字的方式使用,比如$1。在可以识别$的场合,比如变量定义和引用时,如需对$进行转义的话,可以连续输入两个$$;在不可识别的场合,可以随便使用$字符。错误的变量使用和格式将会导致该片段不可跳转。 ## 变量间跳转 在EverEdit中,非常方便的一点是如果定义了多个变量的话,在展开文本片段之后,可以使用Tab跳转到下一个定义,Shift+Tab定义到上一个定义。这是代码片段一个重要特性,不支持该特性的编辑器不能称之为支持代码片段。 ## 最后光标位置 上文提到EverEdit最多只支持9个变量定义,$0被用于最后一次的光标位置。对$0定义没有任何作用!当用户修改完1-9的变了之后,再一次按Tab,光标将会移动到该位置。 ## 引用被选择的文本 有时候想直接在代码管理器点击,插入snippet或者通过脚本菜单生成的snippet来进行操作的时候,EverEdit支持${SELECTED},对普通选区文本进行操作,所有snippet中的${SELECTED}都会被替换为选区的文本。比如HTML中的:<b>${SELECTED}</b> ## 使用代码片段管理器 EverEdit为大家提供了方便使用的代码片段管理器。可以通过 主菜单→查看→文本片段可以激活片段管理器。它会自动的读取snippet目录下所有的后缀为snippet的文件,并以列表的方式呈现出来。在管理器中您可以新建、修改、删除任何片段。在EverEdit中修改代码片段的样例: ``` @名称:For loop @触发文本:for @文本片段:请在下一行开始输入内容! for (${1:unsigned int} ${2:i} = ${3:0}; $2 ${4:<} ${5:count}; $2${6:++}) { $0 } ``` **注意**:如果语法文件已经加载代码片段的话,那么该代码片段会自动刷新到对应的语法文件中! ## 定义说明 **@名称**:表示该片段呈现在管理器以及自动完成下拉列表中的名称 **@触发文本**:当输入tab的时候,符合这几个字符的时候则触发。除此之外,自动完成下拉列表也会使用它进行匹配。 **@文本片段**:该行文本仅是提示用,无实际意义。从第四行开始定义您的代码片段。 ## 关联到语法文件 如果新定义一个snippet文件的话,那么它仅仅会出现在文本片段管理器中,而不会自动的出现在某种语法文件的下拉列表中。因为语法文件并不会如此聪明的知道您要加载哪个snippet。如果想让它自动出现的话,需要手工修改语法文件(比如java.mac),添加如下代码到指定的Region: ``` java.AddSnippet "my.snippet" ```
© 2011-2016 www.EverEdit.net. All rights reserved.