tipos secantes rectas perpendiculares paralelas oblicuas vim

vim - perpendiculares - rectas secantes



¿Cómo puedo jalar todas las líneas coincidentes en un búfer? (3)

Oh, me acabo de dar cuenta, después de comentar más arriba, que es fácil convertir las líneas coincidentes en un búfer temporal ...

:r !grep "pattern" file.txt

Las soluciones más simples vienen una vez que has renunciado a encontrarlas. :)

¿Cómo tirar todas las líneas coincidentes en un búfer?

Dado un archivo como:

match 1 skip skip match 2 match 3 skip

Quiero poder emitir un comando para jalar todas las líneas que coincidan con un patrón (/ ^ coincidencia / para este ejemplo) en un solo búfer para poder ponerlo en otro documento, en un resumen o lo que sea.

El comando debe terminar con esto en un búfer:

match 1 match 2 match 3

Mi primer pensamiento fue intentar:

:g/^match/y

Pero acabo de conseguir el último partido. Esto tiene sentido, porque el comando: g está repitiendo efectivamente la y para cada línea coincidente.

Tal vez haya una forma de agregar un tirón al búfer, en lugar de sobrescribirlo. No pude encontrarlo


:g/^match/yank A

Esto ejecuta el comando global para tirar cualquier línea que coincida con ^match y ponerlo en el registro a . Como a es mayúscula, en lugar de simplemente establecer el registro en el valor, se le agregará. Dado que el comando global ejecuta el comando contra todas las líneas coincidentes, como resultado obtendrá todas las líneas unidas entre sí.

Lo que esto significa es que probablemente desee restablecer el registro a una cadena vacía antes de comenzar :let @a="" .

Y, naturalmente, puede usar lo mismo con cualquier registro nombrado.


:help registers :help quote_alpha

Especifique una letra mayúscula como el nombre del registro para adjuntarla, como :yank A