Выберите строки и нажмите, :чтобы войти в командный режим. 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