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