En general, lo que hago es eliminar las líneas de un archivo, cambiar al otro archivo y pegar.
Además, generalmente uso marcas. En lugar de escribir los números reales, presiono mb
para marcar la línea de inicio, luego voy a la línea final y presiono d'b
para borrar de nuevo a la línea marcada como b
. Pero se puede usar mb
para marcar una línea comenzar, y me
para marcar una línea de fondo, a continuación, ejecute un ex comando:
:'b,'e w somefile.txt<Enter>
Por supuesto se puede utilizar todas las letras de a
través z
para sus marcas; Usualmente uso b
y e
pero puede usar lo que quiera.
Cómo me gustaría mover las líneas:
m'b
<navigate to end line>
d'b
:n somefile.txt<Enter>
p
Ctrl+^
Ctrl +^interruptores del archivo abierto actual al abrir el archivo anterior. (También podría simplemente abrir un panel y cambiar los paneles, si lo prefiere. Los paneles no funcionan en modo vi simple, pero sí funcionan en vim)
Lo anterior supone que ha configurado la opción autowrite
. Con autowrite
, el comando :n
y Ctrl +^ambos simplemente escriben el archivo actual y luego cambian de archivos, en lugar de quejarse de que el archivo ha sido cambiado sin que usted lo haya guardado. También puede hacer lo anterior y simplemente escribir explícitamente el archivo antes de usar :n
o Ctrl + ^.
Por cierto, uso Ctrl +^tanto que lo mapeé en K
. Es más fácil escribir, pero tuve ese hábito hace mucho tiempo cuando solía tener que usar una terminal tonta que no podía escribir Ctrl + ^.
Por cierto, cuando elimina líneas, entran en el "buffer sin nombre". En vim, el búfer sin nombre se conserva cuando se cambian los archivos. En la vi original, el buffer sin nombre se borra. Entonces lo anterior no funcionará con VI viejo. Puede hacer que funcione borrando en un buffer nombrado, luego pegando desde el buffer nombrado; eso funciona en cualquier versión de vi.
m'b
<navigate to end line>
"ad'b
:n somefile.txt<Enter>
"ap
Ctrl+^
Lo anterior elimina en el búfer llamado a
, a continuación, pastas de a
en el otro archivo. Esto funciona en vim, por supuesto; es solo que no lo necesitas.
¡Esa es una manera interesante de manejarlo! Tipo de elegante. – steveha