Сортировать 2-строчные блоки файла - PullRequest
7 голосов
/ 03 августа 2011

У меня есть входной файл (c) со следующим содержанием:

/** doxygen comment for enum member1 */
COMMON_PREFIX_name1 = 1,
/** doxygen comment for enum member2 */
COMMON_PREFIX_name2 = 2,
/** doxygen comment for enum member3 */
COMMON_PREFIX_name3 = 3,
/** doxygen comment for enum member4 */
COMMON_PREFIX_name4 = 4,
...

Могу ли я использовать Vim для сортировки определений по name1 ... nameWh независимо и сохранить комментарии выше определений?

1 Ответ

6 голосов
/ 03 августа 2011

Предлагаю следующую последовательность действий.

  1. Присоединиться к парным линиям.

    :g/^\s*COMMON_PREFIX_/-j!
    
  2. Сортировка соединенных строк по достаточному количеству имен переменных.

    :sort/\*\/\s*COMMON_PREFIX_/
    
  3. Разделить отсортированные строки назад.

    :g/\*\/\zs\ze\s*COMMON_PREFIX_/s//\r/
    

Вы можете запустить все три команды как одну:

:exe'g/^\s*COMMON_PREFIX_/-j!' | sort/\*\/\s*COMMON_PREFIX_/ | g/\*\/\zs\ze\s*COMMON_PREFIX_/s//\r/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...