Copiar un rango de líneas a otro fichero con el editor vi / vim
Si queremos copiar un bloque de líneas del fichero que estamos editando actualmente a otro fichero no es necesario copiar ese bloque de líneas en el buffer, abrir el nuevo fichero y pegarlas, sino que podemos hacerlo directamente con:
:10,15 w nuevofichero.txt
Suponiendo que queremos copiar de la línea 10 a la 15. Si no, deberemos cambiar el rango, pero la estructura será la misma.
También podemos indicar que queremos copiar de/hasta la línea actual con un punto y X líneas hacia atrás o hacia adelante con menos y más.
Por ejemplo, si queremos copiar la línea actual y las 5 siguientes, escribiremos:
:.,+5 w nuevofichero.txt
Para copiar la línea actual y las 4 anteriores:
:-4,. w nuevofichero.txt
Si el fichero ya existe, con esta estructura podemos sobreescribirlo. Si quisiéramos añadir líneas (por ejemplo, la línea actual y las 4 anteriores) a un fichero existente, escribiríamos:
:., +4 w >> fichero_existente.txt