Sublime text 3 keys: Активация Sublime Text — Sublime Text 3 Serial license key

Sublime Text 3 — пользовательская подсветка синтаксиса / Хабр

Расширяемость Sublime Text не знает границ. Для тех, кому мало стандартных функций, на Хабре уже рассказывали о том, как создать сниппет, как написать простой плагин, как написать сложный плагин и еще много много чего. Про ручную настройку подсветки синтаксиса толком ничего не смог найти: для кого-то слишком очевидно, кому-то просто не нужна, а кому-то и наверняка же пригодится.

Итак, задача: имея какие-нибудь абстрактные логи доступа в wonder-net:

!->14/02 16:44:22 [134.249.51.251:39951>80] (t1 19) >HTTP  in:504 out:34  Time:156
GET /516874233**21893/ HTTP/1.1 SCOD=00
!->14/02 16:44:24 [134.249.51.251:49507>80] (t1 20) 
GET /44058858**409377/ HTTP/1.1 SCOD=00
!->14/02 16:54:11 [195.18.13.107:1721>80] (t2 22) 
GET /41494377**562173/ HTTP/1.1 SCOD=00
!->14/02 16:54:11 [195.18.13.107:1721>80] (t2 23) >HTTP  in:385 out:10138  Time:156
GET /5211537**1172048/ HTTP/1. 1 SCOD=00
!->14/02 16:54:24 [195.18.13.107:1727>80] (t1 30) >HTTP  in:423 out:1220  Time:187
GET /5211537**6447554/ HTTP/1.1 SCOD=23
!->14/02 18:07:24 [82.145.208.159:43634>80] (t2 52) 
GET /4149437**8265377/ HTTP/1.1 SCOD=00
!->14/02 18:09:41 [82.145.208.174:41708>80] (t2 61) 
GET /4149497**5750155 / HTTP/1.1 SCOD=00
!->14/02 18:51:39 [82.145.210.33:55210>80] (t1 66) >HTTP  in:543 out:34  Time:0
GET /5168757**9478487/ HTTP/1.1 SCOD=00
!->14/02 18:51:40 [82.145.210.33:55332>80] (t1 68) >HTTP  in:544 out:1243  Time:141
GET /4149497**0456701 / HTTP/1.1 SCOD=00
!->14/02 18:51:46 [82.145.210.33:57345>80] (t1 73) >HTTP  in:544 out:1243  Time:125
GET /5168742**0521893/ HTTP/1.1 SCOD=00

выделить:
Дату-время — фиолетовым курсивом;
Номер карты — желтым курсивом, если не в черном списке или красным, если иначе;
ip-адрес — темно-зеленым, если не в черном списке или красным, если иначе;

scod=хх — темно-зеленым если 00 или красным, если иначе.

В нашу цветовую схему нужно добавить стили, которыми мы собираемся подсвечивать текст. Насколько я понял, все цветовые схемы аккуратно собраны в файле c:\Program Files\Sublime Text 3\Packages\Color Scheme — Default.sublime-package.

Файл представляет собой zip архив без сжатия. Распаковываем, выбираем любимую схему (по умолчанию Monokai.tmTheme) и копируем ее в…(запускаем Sublime Text: меню Preferences — Browse Packages) папку User.

Открываем свежескопированный Monokai.tmTheme для редактирования. В самом низу перед закрывающимся добавляем блоки стилей. Стиль может содержать три параметра: background, foreground и fontStyle. fontStyle в свою очередь bold, italic и underline.

фиолетовый курсив будет выглядеть так:

<dict>
	<key>scope</key>
	<string>violet</string> <!-- По этому имени будем обращаться к стилю --> 
	<key>settings</key>
	<dict>
		<key>foreground</key>
		<string>#EE82EE</string>
		<key>fontStyle</key>
		<string>italic</string>
	</dict>
</dict>

жирный желтый(ЖЖ):

<dict>
	<key>scope</key>
	<string>yellow</string>
	<key>settings</key>
	<dict>
		<key>foreground</key>
		<string>#FFD700</string>
		<key>fontStyle</key>
		<string>bold</string>
	</dict>
</dict>

темно-зеленый:

<dict>
	<key>scope</key>
	<string>green</string>
	<key>settings</key>
	<dict>
		<key>foreground</key>
		<string>#006400</string>
	</dict>
</dict>

красный:

<dict>
	<key>scope</key>
	<string>red</string>
	<key>settings</key>
	<dict>
		<key>foreground</key>
		<string>#FF0000</string>
	</dict>
</dict>

2. В той же папке User создаем файл синтаксиса: wonderLog.tmLanguage с содержимым:

<?xml version="1.0" encoding="UTF-8" ?>
<plist version="1.0">
    <dict>
        <key>patterns</key>
        <array>
            <dict>
                <key>name</key>
                <string>red</string> <!-- Имя стиля --> 
                <key>match</key>
                <string>\b(?i)(?:5168742**0521893|414943**01562173|4149497**5750155)\b</string> <!-- Регулярное выражение к-рое надо выделить (номера из черного списка) --> 
            </dict>
            <dict>
                <key>name</key>
                <string>red</string> 
                <key>match</key>
                <string>\b(?i)(?:134\.249\.51\.251|82\.145\.208\.174)\b</string> <!-- ip из черного списка (точки экранируем) --> 
            </dict>
            <dict>
                <key>name</key>
                <string>green</string> 
                <key>match</key>
                <string>\b(?i)scod=00\b</string> <!-- scod=00 --> 
            </dict>
            <dict>
                <key>name</key>
                <string>red</string> 
                <key>match</key>
                <string>\b(?i)scod=\d+\b</string> <!-- scod!=00 --> 
            </dict>
            <dict>
                <key>name</key>
                <string>green</string> 
                <key>match</key>
                <string>\b\d{1,3}\.
\d{1,3}\.\d{1,3}\.\d{1,3}\b</string> <!-- остальные ip (конечно, надо не так, но...) --> </dict> <dict> <key>name</key> <string>yellow</string> <key>match</key> <string>\b\d{16}\b</string> <!-- остальные номера --> </dict> <dict> <key>name</key> <string>violet</string> <key>match</key> <string>\d{1,2}/\d{1,2}\s\d{2}:\d{2}:\d{2}</string> <!-- дата, время --> </dict> </array> <key>name</key> <string>wonderLog</string> <key>scopeName</key> <string>wonderLog</string> <key>fileTypes</key> <array> <string>log</string> <!-- К этому расширению файла будет автоматически применяться данный синтаксис --> </array> </dict> </plist>

На примере видно, что если несколько регулярных выражений претендуют закрасить цвет по-разному, то приоритет будет у того, которое описано выше (первее).

Сохраняем все.

Выбираем пользовательскую цветовую схему: Preferences — Color Scheme — User — Monokai.

Открываем наш чудо-лог (если расширение файла не совпадает с шаблонным, делаем View — Syntax — wonderLog) и наслаждаемся результатом:

Documentation TOC TOP Key Bindings Версия:

Привязки клавиш в Sublime Text определяются файлами, заканчивающимися в .sublime-keymap. Привязки клавиш используют JSON со структурой верхнего уровня. будучи массивом. Каждая привязка является объектом JSON.

  • Пример

  • Крепления
    • «ключи» Ключ

    • Ключ «команда»

    • Ключ «args»

    • Ключ «контекст»

  • Привязки пользователей

Пример

Ниже приведен пример формата файла .sublime-keymap.

 [
    {
        "клавиши": ["супер+ctrl+m"],
        "команда": "convert_syntax"
    },
    {
        "клавиши": ["супер+шифт+9"],
        "команда": "set_layout",
        "аргументы":
        {
            "столбцы": [0,0, 0,33, 0,66, 1,0],
            «строки»: [0,0, 0,33, 0,66, 1,0],
            «клетки»:
            [
                [0, 0, 1, 1], [1, 0, 2, 1], [2, 0, 3, 1],
                [0, 1, 1, 2], [1, 1, 2, 2], [2, 1, 3, 2],
                [0, 2, 1, 3], [1, 2, 2, 3], [2, 2, 3, 3]
            ]
        }
    },
    {
        "клавиши": ["супер+альт+вверх"],
        "команда": "нет",
        "контекст":
        [
            {"ключ": "панель", "операнд": "найти"},
            {"ключ": "panel_has_focus"},
        ]
    }
]
 

Крепления

Для каждой привязки клавиш требуется два ключа: «ключи» и «команда» . Чтобы передать аргументы к команде должен быть указан ключ "args" . Чтобы ограничить привязку клавиш в конкретной ситуации должен быть включен ключ "контекст" .

"Ключи" Ключ

Значение "keys" должно быть массивом строк, где каждая строка содержит нажатие клавиши , состоящее из клавиши и любых модификаторов. При нажатии нескольких клавиш присутствуют в массиве, команда будет вызвана только в том случае, если нажатия выполняются последовательно.

Крепление для ключа Escape

 {
    "ключи": ["экран"],
    "команда": "нет"
}
 

Привязка к клавише А с модификатором Ctrl

 {
    "клавиши": ["ctrl+a"],
    "команда": "нет"
}
 
Модификаторы

Следующие модификаторы могут быть объединены с именами клавиш для каждого нажатия клавиши .

  • Ctrl

  • управление

  • альтернативный

  • опция — Mac

  • команда — Mac

  • super — ключ Windows в Windows и Linux или в Mac

  • основной Ctrl в Windows и Linux или в Mac

Имена ключей
Имена ключей задаются либо символом (без сдвига)

, напечатанный на ключе, или имя ключа:

a
b
c
d
e
f
g
h
i
j
k
l
м

n
o
p
q
r

  • 9 t
    u
    v
    w
    x
    y
    z

    0
    1
    2
    3
    4
    5
    6
    7
    8
    9

    , 9 .
    \
    /
    ;
    '
    `
    +
    -
    =
    [
    ]

    up
    down
    left
    right
    insert
    home
    end
    pageup
    pagedown
    backspace
    delete
    tab
    enter
    pause
    escape
    space

    keypad0
    keypad1
    keypad2
    keypad3
    keypad4
    keypad5
    keypad6
    keypad7
    keypad8
    клавиатура9
    клавиатура_период
    клавиатура_разделить
    клавиатура_умножить
    клавиатура_минус
    keypad_plus
    keypad_enter
    clear

    f1
    f2
    f3
    f4
    f5
    f6
    f7
    f8
    f9
    F10
    F11
    F12
    F13
    F14
    F15


  • 1915199199999999999999999919999919999999999999999999999999999999999999999999999999999999999919999199919999999999999999009н f18
    f19
    f20

    «команда» ключ
    Клавиша "command" указывает имя команды, которая

    выполняется при обнаружении нажатия клавиши. Команда может быть встроенная команда или команда, реализованная плагином.

     {
        "клавиши": ["ctrl+a"],
        "команда": "выбрать_все"
    }
     

    В настоящее время нет составленного списка всех встроенных команд. Имена многих команды можно найти, просмотрев По умолчанию ({PLATFORM_NAME}).sublime-keymap файлы в По умолчанию/пакет.

    "аргументы" Ключ

    Аргументы для отправки «командному» ключу могут быть указаны объектом JSON. под ключом "args" .

     {
        "ключи": ["основной+shift+b"],
        "команда": "строить",
        "аргументы": {"выбрать": правда}
    }
     

    "контекст" Ключ

    Чтобы разрешить привязки клавиш, которые реагируют по-разному в зависимости от ситуации, Ключ "контекст" позволяет указать одно или несколько условий, которые должны оцениваться значение true, чтобы активировать привязку клавиш.

    Значение "контекст" представляет собой массив объектов. Каждый объект должен содержать "ключ" ключ, имеющий строковое значение. Ключ — это один из предопределенных списков значения, которые можно сравнить с использованием «оператора» и «операнда» .

    Если "ключ" поддерживает операторы , "оператор" должен быть одним из: "равно" или "не равно" . Для , совпадающего с , он должен быть одним из: "regex_match" , "not_regex_match" , "regex_contains" или "not_regex_contains" . По умолчанию «оператор» равен «равно» , а по умолчанию "операнд" равен true .

    Для "ключ" значений, которые имеют дело с выборками, дополнительный ключ "match_all" поддерживается. По умолчанию это false , что означает Условие должно быть оценено как истинное только для одного выбора. Если "match_all" равно true , тогда условие должно оцениваться как истинное для всех выбор.

    Ниже приведен список допустимых значений контекста «ключ» :

    Ключ

    Операнд

    Операторы

    Подобрать все

    Описание

    "auto_complete_visible"

    логический

    равенство

    нет

    Если отображается раскрывающийся список автозаполнения

    "eol_selector"

    струна

    равенство

    да

    Селектор, соответствующий имени области в конце текущей строки

    "следующий_текст"

    струна

    соответствует

    да

    Текст после выделения

    "has_next_field"

    логический

    равенство

    нет

    Если выбрано поле во фрагменте, где существует последующее поле

    "has_prev_field"

    логический

    равенство

    нет

    Если выбрано поле во фрагменте, где существует предыдущее поле

    "is_recording_macro"

    логический

    равенство

    нет

    Если пользователь в данный момент записывает макрос

    "последняя_команда"

    струна

    равенство

    нет

    Имя последней выполненной команды

    "последняя_модифицирующая_команда"

    струна

    равенство

    Имя последнего запуска команды, которая изменила буфер

    "num_selections"

    целое число

    равенство

    нет

    Количество выделений в текущем буфере

    "всплывающее_видимое"

    логический

    равенство

    нет

    Если в данный момент отображается всплывающее окно

    "предыдущий_текст"

    струна

    соответствует

    да

    Текст перед выделением

    "только для чтения"

    логический

    равенство

    нет

    Если буфер отмечен только для чтения

    "выбор_пусто"

    логический

    равенство

    да

    Если текущий выбор не содержит символов

    "селектор"

    струна

    равенство

    да

    Селектор, соответствующий имени области выделения

    "текст"

    струна

    соответствует

    да

    Текст выделения

    "панель"

    струна

    равенство

    нет

    Название текущей панели

    "панель_видимая"

    логический

    равенство

    нет

    Если панель видна

    "panel_has_focus"

    логический

    равенство

    нет

    Если панель видна и имеет фокус

    "overlay_visible"

    логический

    равенство

    нет

    Если панель быстрого доступа видна

    Привязки пользователей

    Пользователи могут настроить свои привязки клавиш, создав файл с именем Default. sublime-keymap в их Packages/User/ каталог.

    Например, следующее создаст привязку клавиш для отображения несохраненных изменений, если любой существует, через Ctrl + Shift + ` .

     [
        {
            "клавиши": ["ctrl+shift+`"],
            "команда": "diff_changes"
        }
    ]
     

    sublimetext3 - Sublime Text 3 - привязка клавиш для отмены сборки не работает (Windows)

    спросил

    Изменено 2 года, 6 месяцев назад

    Просмотрено 357 раз

    Я получил привязку клавиш для отмены сборки, работающую раньше, используя этот параметр:

    "ключи": ["ctrl+alt+c"], "command": "cancel_build",

    Но через несколько дней назад я не мог использовать эту привязку ключа для отмены сборки. Я искал исправление и обнаружил, что предпочтительная привязка клавиш для отмены сборки (из этого поста и этого поста на форуме Sublime Text):

    "keys": ["ctrl+alt+c"], "command": "exec", "args": {"kill": true},

    Я изменил настройку на это, но все же, это не работает (я пробовал разные комбинации клавиш), и мне приходится вручную отменять сборку в меню Инструменты > Отменить сборку.

    Кто-нибудь знает, как решить эту проблему? Любая помощь приветствуется!

    Ниже приведены мои текущие настройки привязки клавиш (первая не работает, как описано в этом посте, вторая работает нормально).

     [
        {
            // "клавиши": ["ctrl+alt+c"], "команда": "cancel_build",
            "клавиши": ["ctrl+alt+c"], "команда": "exec", "аргументы": {"kill": true},
            "keys": ["ctrl+alt+b"], "command": "run_existing_window_command", "args":
                {
                    "id": "repl_python_run",
                    "файл": "config/Python/Main.sublime-меню"
                }
        }
    ]
     

    Спасибо.

  • Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *