Потужність g
:
:g/\vdefn.*\n\s*\zs"([^"]|\n)*"/normal gngq
Частина між /
s досить пояснює себе, оскільки це регулярний вираз із вашого початкового запитання.
normal gngq
наприкінці дещо цікаво. gn
вибере наступну відповідність регулярного виразу і gq
, звичайно, форматує цей вибір (як ви згадували у своєму запитанні).
:g
це дійсно велика частина. Це, на мій погляд, одна з найкорисніших функцій Vim. Команда g
ex приймає регулярний вираз і команду Ex, і вона виконує команду в кожному рядку, з яким відповідає регулярний вираз. Якщо ви ще не дізналися про це :g
, настійно рекомендую зробити це, оскільки це значно підвищить вашу продуктивність. Кілька ресурсів - це власний Vim :help :g
або Power of g на вікі Vim.
gn
вибирається з рядка, деV
викликається наступне (не те, що в тому ж рядку) виникнення шаблону. Документація Vim зазначає, що якщо візуальний режим активний, вибір продовжується з поточного рядка через наступний шаблон. Це викликає небажану поведінку.