Згідно з цим :help multi-repeat
, :g
і його двоюрідний брат :v
працює у двох проходах.
Перший пропуск :g
позначає кожен рядок, який відповідає {pattern}
, а другий пропуск (мабуть, виконується починаючи з початку файлу і закінчуючи до кінця) виконує [cmd]
. Вищеописане використання :g
переваг використовує замовлення, в якому обробляються рядки (що, мабуть, нормально, хоча, ймовірно, технічно не гарантується).
Він працює, спочатку позначаючи кожен рядок, потім переміщуючи перший позначений рядок у верхню частину файлу, потім переміщуючи другий у верхню частину файлу (вище рядка, переміщеного раніше), потім третій позначений рядок (знову вище перенесеного раніше рядок) і так далі, поки останній рядок у файлі не буде переміщений у верхню частину, фактично перевернувши файл.
Зауважте, що якби :g
оброблені рядки були в будь-якому порядку, відмінному від верху до низу, ця команда не працюватиме.