Selezionare le righe, quindi premere :per accedere alla modalità di comando. Vim si riempirà automaticamente '<,'>, il che limita l'intervallo alle linee selezionate. Per il tuo esempio puoi usare il :scomando per fare lo scambio:
:'<,'>s/\(\w\+\), \(\w\+\)/\2, \1/
Questo scambierà due parole separate da una virgola su ogni riga nella selezione visiva.
Puoi anche usare '<e '>come qualsiasi altro segnalibro o posizione di linea, ad esempio come parte di un comando di movimento, quindi in modalità normaled'< cancellerà dalla posizione corrente del cursore all'inizio della prima riga nella selezione visiva. I segni rimangono attivi anche se il blocco non è più evidenziato visivamente.
Se vuoi riprodurre una macro registrata su ogni riga, devi eseguire la macro con il :normalcomando. Sfortunatamente il :normalcomando non funziona su un intervallo di righe, ma puoi risolverlo con il :globalcomando. Questo esegue un :excomando su ogni riga che corrisponde a una regex, quindi puoi farlo:
:'<,'>g/^/ norm @a
Spiegazione:
:'<,'> 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