Sublime Text 的官方 Emmet 插件。
警告:此插件在某些操作系统中可能根本无法工作,因为它是用 JavaScript 编写并使用 PyV8 和 Google V8 二进制文件运行的。如果您遇到问题或编辑器崩溃,请填写问题。
通过包控制:
Emmet
插件。手动:
警告:安装插件后,它将自动下载所需的 PyV8 二进制文件,因此您必须稍等一下(请参阅状态栏上的加载 PyV8 二进制消息)。如果您遇到自动 PyV8 加载程序的问题,请尝试手动安装。
递增/递减数字操作:
您可以使用新操作和过滤器轻松扩展 Emmet,或自定义现有操作和过滤器。在Emmet.sublime-settings
中,定义extensions_path
设置,Emmet 将在启动时加载指定文件夹中的所有.js
和.json
文件。
extensions_path
的默认值为~/emmet
,它指向操作系统用户主文件夹内的emmet文件夹。
此外,您可以在用户的Emmet.sublime-settings
文件中创建名为扩展文件的部分(例如snippets
、 preferences
和syntaxProfiles
),并在其中写入您的自定义设置。有关示例,请参阅原始设置文件。
Sublime Text 是一款出色的文本编辑器,具有许多功能和操作。大多数这些操作都绑定到键盘快捷键,因此几乎不可能为第三方插件提供方便的插件快捷键。
如果您对默认键盘映射不满意,可以使用Emmet.sublime-settings
文件的disabled_keymap_actions
首选项禁用各个键盘快捷键。
使用逗号分隔的操作名称列表,应禁用默认键盘快捷键。例如,如果要释放Ctrl+E (“扩展缩写”)和Ctrl+U (“更新图像大小”)快捷键,则必须设置以下值:
"disabled_keymap_actions": "expand_abbreviation, update_image_size"
您应该参考Default (Your-OS-Name).sublime-keymap
文件来获取操作 ID(查找args/action
key)。
要禁用所有默认快捷方式,请将值设置为all
:
"disabled_keymap_actions": "all"
并不是说,如果您像这样禁用了任何操作并且创建了自己的键盘快捷键,则不应使用emmet_action_enabled.ACTION_NAME
上下文,因为这是禁用操作的键。
Emmet 仅以有限的语法扩展缩写:HTML、CSS、LESS、SCSS、Stylus 和 PostCSS。将 Tab 处理程序限制为有限的语法列表的原因是因为它破坏了本机 Sublime Text 片段。
如果您想在其他语法(例如 JSX、HAML 等)中使用 Tab 进行缩写,则必须调整键盘快捷键设置:为所需语法范围选择器的tab
键添加expand_abbreviation_by_tab
命令。要获取当前语法范围选择器,请按⇧⌃P (OSX) 或Ctrl+Alt+Shift+P ,它将显示在编辑器状态栏中。
转到Preferences
> Key Bindings — User
并使用正确配置的范围选择器而不是SCOPE_SELECTOR
令牌插入以下 JSON 片段:
{
"keys" : [ "tab" ] ,
"command" : "expand_abbreviation_by_tab" ,
// put comma-separated syntax selectors for which
// you want to expandEmmet abbreviations into "operand" key
// instead of SCOPE_SELECTOR.
// Examples: source.js, text.html - source
"context" : [
{
"operand" : "SCOPE_SELECTOR" ,
"operator" : "equal" ,
"match_all" : true ,
"key" : "selector"
} ,
// run only if there's no selected text
{
"match_all" : true ,
"key" : "selection_empty"
} ,
// don't work if there are active tabstops
{
"operator" : "equal" ,
"operand" : false ,
"match_all" : true ,
"key" : "has_next_field"
} ,
// don't work if completion popup is visible and you
// want to insert completion with Tab. If you want to
// expand Emmet with Tab even if popup is visible --
// remove this section
{
"operand" : false ,
"operator" : "equal" ,
"match_all" : true ,
"key" : "auto_complete_visible"
} ,
{
"match_all" : true ,
"key" : "is_abbreviation"
}
]
}
Emmet 插件允许您使用Tab键扩展缩写,就像常规片段一样。另一方面,由于动态特性和广泛的语法,有时您可能会得到意想不到的结果。本节介绍 Tab 处理程序的工作原理以及如何对其进行微调。
默认情况下,Tab 处理程序在有限的语法范围内工作:HTML、XML、HAML、CSS、SASS/SCSS、LESS、PostCSS 和编程语言中的字符串(如 JavaScript、Python、Ruby 等)。这意味着:
line
特殊输出配置文件生成输出,该配置文件将输出生成为单行。要微调 Tab 键处理程序,您可以在用户的Emmet.sublime-settings
文件中使用以下设置:
disable_tab_abbreviations_for_scopes
— 应禁用 Tab 键处理程序的语法范围的逗号分隔列表。例如,如果您想禁用编程语言和 HAML 语法字符串内的处理程序,您的设置将如下所示: "disable_tab_abbreviations_for_scopes" : " text.haml, string "
disabled_single_snippet_for_scopes
— 以逗号分隔的语法范围列表,在扩展单个缩写时应禁用 Tab 处理程序。目前,ST 不提供用于获取本机片段列表的 API。因此,例如,如果您尝试扩展php
缩写,它将被传递到 Emmet,后者输出
而不是本机 ST 片段中定义的 PHP 块。作为解决方法,如果您尝试在disabled_single_snippet_for_scopes
设置中定义的范围内扩展单个缩写,Emmet将首先在其自己的片段目录中查找其名称,然后在known_html_tags
设置中查找,如果未找到,它允许ST处理它并展开本机缩写(如果匹配)。known_html_tags
— 用于如上所述查找的所有已知 HTML 标签的空格分隔列表。如果您对 Emmet 选项卡处理程序行为不满意,可以禁用它:只需将"disable_tab_abbreviations": true
添加到用户的Preferences.sublime-settings
文件中。
如果您的工作流程已包含 CSS 供应商前缀的自动化任务(例如 Autoprefixer),您可以禁用 Emmet 的自动供应商前缀插入,将此选项添加到用户的Emmet.sublime-settings
文件中:
{
"preferences" : {
"css.autoInsertVendorPrefixes" : false
}
}