Какая элисп или макромагия может сделать это преобразование текста?

У меня есть набор операторов SQL, отформатированный так:

INSERT INTO reports.workload (workload_id,event_time,event_type_id,agent_id) VALUES 
                             (-42000,'2010-02-23 07:30:38.941436',1,NULL);

Прямо сейчас кортеж VALUES в начале выравнивается по кортежу с именем столбца. Однако я хочу, чтобы элементы кортежа были выровнены, например, так:

INSERT INTO reports.workload (workload_id,event_time,                  event_type_id,agent_id) VALUES 
                             (-42000,     '2010-02-23 07:30:38.941436',1            ,NULL);

Мои elisp-fu и regexp-fu умеренные, но не достаточные для этой задачи. Как я могу это сделать?

1 ответ

Решение

Выберите область, которую вы хотите выровнять, и введите Cu Cx \ (это ярлык для align-regexp). выберите \(,\) в качестве регулярного выражения и повторите его по всей строке.

Подробнее о выравнивании текста см. Главу AlignCommands в EmacsWiki.

Другие вопросы по тегам