Виберіть рядки, а потім натисніть, :
щоб увійти в командний режим. 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