Виберіть рядки, а потім натисніть, :щоб увійти в командний режим. Vim автоматично заповнює '<,'>, що обмежує діапазон для вибраних рядків. Для вашого прикладу ви можете використовувати :sкоманду для обміну:
:'<,'>s/\(\w\+\), \(\w\+\)/\2, \1/
Це поміняє місцями два слова, розділені комою у кожному рядку візуального виділення.
Ви також можете використовувати будь-яку іншу закладку або положення рядка, як '<і '>будь-яку іншу позицію, наприклад, як частину команди переміщення, тому в звичайному режимі d'<буде видалено з поточної позиції курсору до початку першого рядка у візуальному виділенні. Позначки залишаються в силі, навіть якщо блок більше не виділяється візуально.
Якщо ви хочете повторити записаний макрос у кожному рядку, вам потрібно виконати макрос за допомогою :normalкоманди. На жаль, :normalкоманда не працює на діапазоні рядків, але ви можете це виправити за допомогою :globalкоманди. Це запускає :exкоманду в кожному рядку, що відповідає регулярному виразу, тому ви можете зробити це:
:'<,'>g/^/ norm @a
Пояснення:
:'<,'> for every line in the visual block
g/^/ on every line that matches the regex /^/ - i.e. every line
norm run in normal mode
@a the macro recorded in a