Escribir el área seleccionada para archivar


13

Me gustaría escribir un área visualmente seleccionada en un archivo.

Por ejemplo:

prefix [sample text
more text] suffix

[] es el bloque seleccionado que debe tomarse, lo que da como resultado un nuevo archivo que contiene:

sample text
more text

El wcomando normal usa líneas, por '<,'>w! /tmp/testlo que incluiría el prefijo / sufijo (y `<,`>w! /tmp/testno está permitido).

Respuestas:


8

Primero, copie (también llamado 'yank' en lenguaje vim) su selección visual en el registro de su elección. Por ejemplo, para copiar para registrar 'z', haga su selección visual y luego escriba "zy.

En el caso que proporcione, puede hacer esto sin mover el cursor, colocando el cursor en la primera llave cuadrada y luego escribiendo v%"zy.

Desglose: v-> iniciar la selección visual; %-> mover a la llave correspondiente; "z-> use el registro 'z'; y-> tirar (copiar) la selección (en este caso, en el registro 'z').

Una vez que haya copiado su selección visual para registrar 'z', vaya a la línea de comando y escriba

call writefile(getreg('z', 1, 1), "some-file")

Si desea agregar el texto, en lugar de sobrescribir, puede usar la bandera "a" de la siguiente manera

call writefile(getreg('z', 1, 1), "some-file", "a") 

Entonces, ¿eso significa que no hay un comando incorporado que pueda hacer esto?
laktak

@laktak No es que pueda encontrar ... A split()? getreg(.., 1, 1)devuelve una lista, por split()lo que no es necesario.
muru

Gracias, eres demasiado rápido :) Me acabo de dar cuenta de mi error y edité el comentario mientras respondías.
laktak

3

También puedes copiar tu contenido y crear una nueva ventana

Ctrl-w n ........... create a new window
p .................. paste

Entonces puedes guardar como quieras


0
  1. La ayuda de Vim dice (: h 10.3):

    Nota: Cuando use el modo Visual para seleccionar parte de una línea, o use CTRL-V para seleccionar un bloque de texto, los comandos de dos puntos se aplicarán a líneas completas. Esto podría cambiar en una versión futura de Vim.

  2. El complemento vis (# 1195) de Charles Campbell ofrece el comando :B {cmd}para aplicar un {cmd}solo a la selección visual (bloque).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.