Emmet(Zen Coding)官方文档 之六 自定义 Emmet
来源:互联网 发布:华为s5700绑定mac地址 编辑:程序博客网 时间:2024/06/10 23:19
说明】本系列博文是依据 Emmet 官方文档翻译的,原文地址为:http://docs.emmet.io/,部分内容已经在博主之前的博文中节选过,为方便已经收藏过之前博文的朋友,没有删除这些博文,仅将其完整的收录于本系列中。
自定义
Emmet 提供了大范围的微调,以使你可以用之提升自己的插件体验。几乎所有的正式开发的编辑器插件 (除了 PSPad 和基于浏览器的) 都有 扩展支持: 一个用于扩展 Emmet可以放置 json 和 js 文件的文件夹。请参考随编辑器插件发布的 README 文件,找出 Emmet 在哪儿搜索扩展。
扩展文件夹中的每个 .js 文件都在插件启动时被载入和执行。使用 js 文件建立自己的 过滤器 或 动作:可以使用 Emmet 模块并使用 JavaScript 缩写脚本与编辑器。
使用 .json 文件能够微调 Emmet 工具的不同部分:
snippets.json 添加自己的片段或升级已有的片段。snippets.json
在扩展文件夹内创建 snippets.json 文件来添加或者覆盖片段。此文件的结构与 原始文件 相同:在最顶级定义片段所属的 语法名称 ,第二级有下面几段:
- abbreviations 或 snippets 包含 不同类型 的片段定义。转载请尊重原创、保留相关链接本文来自多宝平台:http://www.mbodb.com
- filters 包含用逗号间隔的当前语法的默认 过滤器 列表。如果没有定义本属性,则默认使用 html 过滤器。
- extends: 当前语法所继承的片段定义的语法名称。例如,sass 语法继承自 css ,不过可以为这个语法定义建立自己的或者覆盖一些 SASS 特定的片段。
走入完成后,用户的 snippets.json 与原始文件递归合并,添加或升级缩写和片段。
文本片段
在语法定义的 snippets 一节,可以创建普通的文本片段,你编辑里的一样漂亮。可以在片段中使用 tabstops ,当缩写展开时可以使用 Tab 键在它们之间跳转(前提是所用的编辑器支持 tabstops)。Emmet 采用 TextMate 编辑器的 tabstops 格式:
- $1 或 ${1}
- ${1:hello world} — 带有占位符的 tabstop
注意 ${0} 或 $0 tabstop 在类似于 TexeMate 或 Eclipse 等一些编辑器中有特殊含义:用作离开 “tabstops 模式”的最后一个光标位置,所以最好从 1 开始使用 tabstops 。
变量
可以在片段中使用 片段 来输出预定义数据。例如 HTML 语法的 html:5 片段是这样定义的:
<!doctype html>\n<html lang="${lang}">...</body>\n</html>
在上面的盒子中, ${lang} 用于引用定义在 snippets.json 文件的 variables 一节的 lang 变量。多宝例如,所用的母语是俄语,可以直接使用 ru 值覆盖 lang 变量,并保持原始的片段定义。
也可以使用行内缩写属性覆盖变量值: html:5[lang=ru]。与 ID 和 CLASS 属性缩写—# 和 .—一起,可以很容易的覆盖缩写中的变量:
"for": "for (var ${class} = 0; i < ${id}.length; ${class}++) {\n\t|}"
用法示例: for#array.i.
预定义变量
片段有一些对 Emmet 有特殊意义的预定义变量名:
- ${cursor} 或 | 是 $0 的罔,用作生成输出的当前位置。
- ${child} 引用了一个位置,子属性和片段将被输出到此处。如果没有定义,子元素将输出到片段内容的后边。
转码 | 和 $ 字符
字符 $ 作于 tabstops 和变量,字符 | 用于指示缩写展开时的光标位置。如果想原样输出这些字符,必须使用双斜杠来对它们进行转码: \\$ 或 \\|
共享片段
如果想与其它用户共享片段,可以将它们放进以 snippets 命名的文件中,例如: snippets-foo.json、snippets_bar.json、snippetsBaz.json。Emmet 将在启动时载入它们,并将它们合并到单个片段集合中。
注意,定义在 snippets.json (译注:此处疑是 snippets-*.json)文件中的片段优先于定义在 `snippets.json` 文件中的片段
preferences.json 改变某些 Emmet 过滤器和运作的行为。preferences.json
preferences.json 文件用于编辑 Emmet 的一些运作和解析器的行为。此文件包含 Key-value 对的简单字典。
例如在 “CSS 渐变” 上,有 css.gradient.fallback 选项描述当定义展开时能够回调 background-color 。要使它生效,直接加入如下内容到 preferences.json 文件:
{ "css.gradient.fallback": true}
以下是当前可用的选项列表:
- attr(name, before, after) – 这个函数输出用 before and after 连接的指定的属性。如果属性不存在,将返回空字符串。
- node – 当前节点 (AbbreviationNode 的实例)
- name – 当前标签的名字
- padding – 当前字符的留白,能够用于格式化
syntaxProfiles.json
输出配置用于定义如何生成 HTML 内容。例如,当展开 br 属性时,Emmet 可能会生成如下标签中的一种:
- <br> — HTML 记号
— XHTML 记号- <br/> — XML 记号
Emmet 尝试自动探测当前文档的输出配置。例如,如果文档定义成 XHTML 类型,将使用 xhtml 配置,否则使用 html 。
但有时,可能想要强制 Emmet 使用另一个特定语法的配置,或者使用带有特殊规则的自定义配置。
在这种情况下,可以在扩展文件夹创建 syntaxProfiles.json 文件并且为必备的语法指定配置。
这个文件的内容就是简单的键/值对字典,键是定义在 snippets.json 文件中的语法名,值是预定义配置(字符串)的名字或者带有配置选项(object)的字典:
点击(此处)折叠或打开
- {
- // force XHTML profile for HTML syntax
- "html": "xhtml",
- // create our own profile for XML
- "xml": {
- "tag_case": "upper",
- "attr_quotes": "single"
- }
- }
预定义配置
- html — 默认输出配置。
- xhtml — 与 html 相同,但当输出空元素时,带有关闭斜杠:
。 - xml — XML 和 XSL 语法的默认定义,在带有缩进的新行输出每个标签,输出空标签时带有关闭斜杠: <br/>。
- line — 用于输出不带有任何缩进和换行的展开缩写。在某些编辑器中,默认应用于类似 JavaScript 或 Python 等编程语言上,以便生成有效的字符串。
创建自己的配置
可以指定一个带有如下键的字典来定义自己的输出配置:
- tag_case:生成标签名的大小写,字符串类型。可取的值有:upper(大写)、lower(小写) 和 asis(原样输出)。
- attr_case:生成标签的属性名的大小写,字符串类型。可取的值有:upper(大写)、lower(小写) 和 asis(原样输出)。
- attr_quotes: 围住属性值的括号,字符串,可取的值有: single(单引号) 和 double(双引号)。
- tag_nl: 在带有缩进的新行上输出每个标签。可取的值有true (每个标签占一行),false (不格式化) 和 'decide' (字符串;仅块级元素生成新行)。
- tag_nl_leaf:当 tag_nl 设置成 true,定义叶块节点(即没有子节点的节点)里面是否格式化换行符。
- indent:在新行上缩进标签,布尔值。
- inline_break:达到多少行内元素需要强制换行,数值类型。默认值为 3。例如 span*2 将展开成 <span><span>,但 span*3 将生成三个 <span> 元素,每个占有一行。如果设置为 0 将不再为行内元素换行。
- self_closing_tag:空元素是否还有关闭斜杠,如 br 和 img,布尔值。可取的值有 true、 false 和 'xhtml' (字符串;按 XHTML 风格输出关闭斜杠,例如:
)。 - filters: 自动应用的 过滤器 列表。
- Emmet(Zen Coding)官方文档 之六 自定义 Emmet
- Emmet(Zen Coding)官方文档 之六 自定义 Emmet
- 【翻译】Emmet(Zen Coding)官方文档 之五 CSS 过滤器
- 【翻译】Emmet(Zen Coding)官方文档 之四 动作
- 【翻译】Emmet(Zen Coding)官方文档 之三 CSS 缩写
- 【翻译】Emmet(Zen Coding)官方文档 之七 一览表
- 翻译】Emmet(Zen Coding)官方文档 之七 一览表
- Emmet(Zen Coding)官方文档 之三 CSS 缩写
- Emmet(Zen Coding)官方文档 之二 缩写
- Emmet(Zen coding)使用指南
- from zen coding to Emmet
- Emmet (Zen Coding) 使用示例
- sublime text2 安装zen coding(Emmet)
- vim emmet ---zen coding 升级版
- 前端开发利器 - Emmet (Zen Coding)
- Emmet (Zen Coding) HTML基本语法
- html Emmet(即Zen coding) 快速输入
- Sublime text2 安装zen coding(Emmet)
- DBA的那些事
- 【面试】准备留着用
- Scripts:根据sql_id创建sql_profile的脚本(此脚本要慎用)gps.sql
- 13 结构体
- iOS开发准备篇-(1)Mac OS X日常操作
- Emmet(Zen Coding)官方文档 之六 自定义 Emmet
- linux下用库libxml2解析xml文件
- 黑马程序员_C语言_数据类型总结
- CentOS-5.4-i386-bin-DVD源码安装gcc-4.8.0
- 案例 - 快速启库到某一有效备份时间点
- 编写高质量代码改善java程序的151个建议——[1-3]基础?亦是基础
- Scripts:查询物理读最多的10个SQL的脚本hphy10.sql
- If-Modified-Since
- Remote Scripting进阶教程---远程执行服务器脚本