Объемный массив на вставке 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>
Другие вопросы по тегам