Объемный массив на вставке Sublime
Я хотел бы установить мой возвышенный, чтобы войти в режим, в котором, когда я вставляю набор данных, выглядящих так:
1234567 This is code 1
2345678 This is code 2
3456789 This is code 3
Это закончится так:
['1234567', 'This is code1'],
['2345678', 'This is code2'],
['3456789', 'This is code3'],
Есть ли способ легко сделать это, используя горячую клавишу для включения и выключения моего "специального режима вставки" или даже способ создать фрагмент, который будет редактировать выделение, меняя его. Черт, в этот момент подойдет даже простое регулярное выражение поиска / замены.
2 ответа
Ну, это выглядит захватывающе.
Создание "специального режима вставки", который в любом случае должен был бы включать пользовательский плагин и регулярные выражения, звучит ужасно сложно, когда вы можете просто использовать подстановку фрагмента. Вы даже можете привязать свой новый блестящий фрагмент к комбинации клавиш, как объясняется как в этом посте на форуме, так и в этой статье (прокрутите вниз).
Создайте новый фрагмент с таким содержимым:
<snippet>
<content><![CDATA[
${SELECTION/(^[\d]+) (.+) ([\d]+)/['$1', '$2$3'],/g}
]]></content>
</snippet>
Сохраните фрагмент под любым именем, подходящим для вашей фантазии. Теперь, после вставки, выберите все недавно вставленные данные и разбейте их на Ctrl+Shift+L
затем откройте командную палитру с помощью Ctrl+Shift+P
и введите название фрагмента, который вы выбрали. Нажмите Enter
, и вуаля! Ваша загадочная таблица данных была отформатирована как массив.
Конечно, вам придется редактировать фрагмент регулярного выражения фрагмента ((^[\d]+) (.+) ([\d]+)
) в том случае, если ваш ввод не такой строгий, как ваш пример текста. Regexpal может помочь.
Вот еще одно общее решение, которое разбивает массив на пространство.
<snippet>
<content><![CDATA[
[${SELECTION/\s*(\S+)\s*/'$1',/g}]
]]></content>
</snippet>