Русское сообщество Sublime Text
Основной раздел => Вопросы и ответы => Тема начата: Levin249 от Мая 13, 2014, 03:48:41
-
Ребят, день добрый!
Проблема такая: во второй версии сниппеты работают ок. Поставил 3. Даже простейший сниппет на вставку текста не срабатывает. Если выбрать через Tools-Snippets и жмакнуть то все ок - вставляет, а через Tab нет. В чем может быть проблема? :o
P.S. Установлены следующие плагины:
AdvancedNewFile
BracketHighlighter
Emmet
Package Control
PyV8
SublimeLinter
-
Скинь пример снипета, пожалуйста.
Через меню снипеты вызываются по имени файла, в котором они находятся (например: Snippet: hello для hello.sublime-snippet), а в коде через параметр <tabTrigger>.
<snippet>
<content><![CDATA[
Hello, ${1:this} is a ${2:snippet}.
]]></content>
<tabTrigger>hello</tabTrigger>
</snippet>
-
Пример сниппета... Ну например код на сброс стилей CSS.
<snippet>
<content><![CDATA[
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote,
pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd,
q, s, samp,small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt,
dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot,
thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption,
footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark,
audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
vertical-align: baseline;
}
article, aside, details, figcaption, figure, footer, header, hgroup, menu,
nav, section {
display: block;
}
body {
line-height: 1.2;
}
ol {
padding-left: 1.4em;
list-style: decimal;
}
ul {
padding-left: 1.4em
list-style: square;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
]]></content>
<tabTrigger>resetcss</tabTrigger>
<scope>source.css</scope>
</snippet>
-
Работу снипетов блокирует Emmet. Нашел несколько вариантов решения.
1. Отключить Emmet в CSS.
Preferences > Package Settings > Emmet > Settings - User
{
"disable_tab_abbreviations_for_scopes": "source.css"
}
2. Использовать Ctrl+Space (Edit > Show Completions) вместо Tab. Кстати, у меня еще снипет раскрывается по Tab'y, если аббривеатуру выделить.
3. Отключить использование табуляции в Emmet и пользоваться Ctrl+E.
Preferences > Settings - User.
{
"disable_tab_abbreviations": true,
}
4. Добавить снипеты в Emmet (http://docs.emmet.io/customization/snippets/).
У последнего варианта очень странное поведение.
Preferences > Package Settings > Emmet > Settings - User
{
"snippets": {
"css": {
"abbreviations": {
"resetcss": "<div>"
}
}
}
}
Например, так resetcss сработает как прописано в resetcss.sublime-snippet, но если "<div>" изменить на "div", то он отработает как снипет Emmet.
-
Огромное спасибо за развернутый ответ. Буду пробовать.
Попробовал вставку через Ctrl+Space - очень удобно на этом и остановлюсь :)