El poder de lo global funcionará aquí:
:g/^/exe "normal ddggP"
O, más simplemente (gracias @tommcdo)
:g/^/move 0
El primero coincidirá con cada línea y para cada línea, elimínelo y péguelo en la parte superior del archivo. A medida que se mueve por el archivo, invierte el texto.
El segundo coincide de manera similar con cada línea y la mueve a la parte superior del archivo.
Nota: Ambos funcionan en todo el archivo y no se aplicarán correctamente para invertir un subconjunto de líneas. Vea la respuesta de Ingo Karkat para una solución que funciona dentro de un rango.
Descripción:
g
el comando global
/^/
coincide con cualquier línea que tenga un comienzo (es decir, todas las líneas)
exe
ejecute la siguiente cadena
"normal
realice los comandos en modo normal
dd
elimine la línea
gg
mueva a la parte superior del archivo
P
pegue por encima de la posición actual
move 0
mueve la línea actual a debajo de la línea 0 (que la coloca en la posición 1 o la primera línea del archivo)