¿Cómo extraes todas las líneas que coinciden en un búfer?¿Cómo elimino todas las líneas coincidentes en un buffer?
dado un archivo como:
match 1
skip
skip
match 2
match 3
skip
Quiero ser cuestión de poder una orden de dar un tirón todas las líneas que coinciden con un patrón (/^partidos/para este ejemplo) en una sola memoria intermedia de modo que pueda poner en otro documento, o en un resumen o lo que sea.
El comando debe terminar con esto de una memoria intermedia:
match 1
match 2
match 3
Mi primer pensamiento fue intentar:
:g/^match/y
Pero acabo de llegar al último partido. Esto tiene sentido, porque el comando: g repite efectivamente el y
para cada línea coincidente.
Quizás haya una manera de agregar un tirón al búfer, en lugar de sobreescribirlo. No pude encontrarlo
He estado haciendo este tipo de cosas todo el día y encuentro que la solución es menos de lo que me gustaría. Hago 'qaq' seguido de': g/pattern/normal "AY' (no noté el comando: yank antes) luego voy a mi buffer y lo pego. ¿No hay una manera directa de redirigir directamente a un buffer? (Anteriormente había estado haciendo ': redir @ a'': g/pattern/'': redir END', así que este es ciertamente un paso en la dirección correcta, pero solo quiero uno, más ... paso ...) :-) Supongo que podría escribir una función con la suficiente facilidad ... –
Ambas voté esta pregunta porque me resultó útil y voté para cerrarla porque esa es la única forma en que veo que dice "esto debería estar en superuser.com "Es una gran pregunta, pero creo que ese es el lugar correcto para ello. Lamento que un voto" cerrado "sea la única forma de votar para mudarnos. –
@NathanLong, creo que esta pregunta es anterior al superusuario. Probablemente debería migrarse, aunque – daotoad