Официальный плагин Emmet для Sublime Text.
Предупреждение: этот плагин может вообще не работать в некоторых ОС, поскольку он написан на JavaScript и для запуска использует двоичные файлы PyV8 и Google V8. Если у вас возникли проблемы или сбой в работе редактора, пожалуйста, сообщите об этом.
С контролем пакета:
Emmet
.Вручную:
ВНИМАНИЕ : Когда плагин установлен, он автоматически загрузит необходимый двоичный файл PyV8, поэтому вам придется немного подождать (см. сообщение «Загрузка двоичного файла PyV8» в строке состояния). Если у вас возникли проблемы с автоматическим загрузчиком PyV8, попробуйте установить его вручную.
Действия по увеличению/уменьшению числа:
Вы можете легко расширить Emmet новыми действиями и фильтрами или настроить существующие. В Emmet.sublime-settings
определите параметр extensions_path
, и Emmet загрузит все файлы .js
и .json
в указанную папку при запуске.
Значением по умолчанию для extensions_path
является ~/emmet
, которое указывает на папку emmet внутри домашней папки пользователя вашей ОС.
Кроме того, вы можете создавать разделы, называемые файлами расширений (например, snippets
, preferences
и syntaxProfiles
) внутри пользовательского файла Emmet.sublime-settings
, и записывать туда свои настройки. Примеры см. в исходном файле настроек.
Sublime Text — отличный текстовый редактор с множеством функций и действий. Большинство этих действий привязаны к сочетаниям клавиш, поэтому практически невозможно предоставить удобные сочетания клавиш для сторонних плагинов.
Если вас не устраивает раскладка клавиатуры по умолчанию, вы можете отключить отдельные сочетания клавиш с предпочтением disabled_keymap_actions
файла Emmet.sublime-settings
.
Используйте список названий действий, разделенных запятыми, для которых сочетания клавиш по умолчанию должны быть отключены. Например, если вы хотите отпустить сочетания клавиш Ctrl+E («Развернуть аббревиатуру») и Ctrl+U («Обновить размер изображения»), необходимо установить следующее значение:
"disabled_keymap_actions": "expand_abbreviation, update_image_size"
Вам следует обратиться к файлу Default (Your-OS-Name).sublime-keymap
чтобы получить идентификаторы действий (ищите ключ args/action
).
Чтобы отключить все ярлыки по умолчанию, установите значение all
:
"disabled_keymap_actions": "all"
Это не значит, что если вы отключили какое-либо подобное действие и создали собственное сочетание клавиш, вам не следует использовать контекст emmet_action_enabled.ACTION_NAME
поскольку это клавиша, которая отключает действие.
Emmet расширяет сокращения только в ограниченном синтаксисе: HTML, CSS, LESS, SCSS, Stylus и PostCSS. Причина ограничения обработчика Tab ограниченным списком синтаксиса заключается в том, что он нарушает встроенные фрагменты Sublime Text.
Если вы хотите использовать сокращение с помощью Tab в других синтаксисах (например, JSX, HAML и т. д.), вам необходимо настроить параметры сочетаний клавиш: добавьте команду expand_abbreviation_by_tab
для клавиши tab
для необходимых селекторов области синтаксиса. Чтобы получить текущий селектор области синтаксиса, нажмите ⇧⌃P (OSX) или Ctrl+Alt+Shift+P , он отобразится в строке состояния редактора.
Перейдите в Preferences
> Key Bindings — User
и вставьте следующий фрагмент JSON с правильно настроенным селектором области вместо токена SCOPE_SELECTOR
:
{
"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 , как обычные фрагменты. С другой стороны, из-за динамической природы и обширного синтаксиса иногда вы можете получить неожиданные результаты. В этом разделе описывается, как работает обработчик вкладок и как его можно настроить.
По умолчанию обработчик вкладок работает в ограниченной области синтаксиса : 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
— разделенный запятыми список областей синтаксиса, в которых обработчик табуляции должен быть отключен при раскрытии одного сокращения. В настоящее время ST не предоставляет API для получения списка нативных фрагментов. Так, например, если вы попытаетесь расширить аббревиатуру php
, она будет передана Emmet, который выводит
вместо блока PHP, как определено в собственных фрагментах ST. В качестве обходного пути: если вы пытаетесь расширить одну аббревиатуру внутри области, определенной в настройке 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
}
}