Al "mover un fragmento de texto a un nuevo archivo", supongo que quiere decir cortar ese fragmento de texto del archivo actual y crear un nuevo archivo que contenga solo ese texto.
Varios ejemplos:
:1,1 w new_file para crear un nuevo archivo que contenga solo el texto de la línea número 1
:5,50 w newfile para crear un nuevo archivo que contenga el texto de la línea 5 a la línea 50
:'a,'b w newfilepara crear un nuevo archivo que contenga el texto de marca aa marcab
- establece tus marcas usando may mbdonde quieras
Lo anterior solo copia el texto y crea un nuevo archivo que contiene ese texto. Luego tendrá que eliminar después.
Esto se puede hacer usando el mismo rango y el dcomando:
:5,50 d para eliminar el texto de la línea 5 a la línea 50
:'a,'b dpara eliminar el texto de marca aa marcab
O utilizando ddpara el caso de una sola línea.
Si, en cambio, selecciona el texto usando el modo visual y luego presiona :mientras el texto está seleccionado, verá lo siguiente en la línea de comando:
:'<,'>
Que indica el texto seleccionado. Luego puede expandir el comando para:
:'<,'>w >> old_file
Que añadir el texto a un archivo existente. Luego elimine como se indica arriba.
Un trazador de líneas:
:2,3 d | new +put! "
El desglose:
:2,3 d - eliminar líneas 2 a 3
| - técnicamente, esto redirige la salida del primer comando al segundo comando, pero dado que el primer comando no genera nada, solo estamos encadenando los comandos juntos
new - abre un nuevo búfer
+put! "- poner el contenido del registro sin nombre ( ") en el búfer
- El bang (
!) está ahí para que el contenido se coloque antes de la línea actual. Esto provoca una línea vacía al final del archivo. Sin ella, hay una línea vacía en la parte superior del archivo.