Come si fanno scorrere tutte le linee corrispondenti in un buffer?Come faccio a trascinare tutte le linee corrispondenti in un buffer?
Dato un file, come:
match 1
skip
skip
match 2
match 3
skip
voglio essere problema in grado un comando per tirare tutte le righe che corrispondono a un modello (/^partita/per questo esempio) in un unico buffer in modo che posso mettere in un altro documento, o in un sommario o altro.
Il comando deve finire con questo in un buffer:
match 1
match 2
match 3
Il mio primo pensiero è stato quello di provare:
:g/^match/y
Ma ottengo solo l'ultima partita. Questo ha senso, perché il comando: g sta ripetendo efficacemente lo y
per ogni riga corrispondente.
Forse c'è un modo per aggiungere uno strattone al buffer, piuttosto che sovrascriverlo. Non riuscivo a trovarlo.
Ho fatto questo genere di cose tutto il giorno e ho trovato la soluzione per essere meno che mi piacerebbe. Faccio 'qaq' seguito da': g/pattern/normal "AY' (non ho notato il comando: yank prima) poi vado nel mio buffer e lo incollo Non c'è un modo diretto per reindirizzare direttamente in un buffer? (In precedenza avevo fatto ': redir @ a':: g/pattern /' ': redir END', quindi questo è certamente un passo nella giusta direzione, ma voglio solo uno .più passo ...) :-) Suppongo di poter scrivere una funzione abbastanza facilmente ... –
Ho entrambi sviato questa domanda perché mi è stato utile e ho votato per chiuderla perché è l'unico modo che vedo per dire "questo dovrebbe essere su superuser.com "È una bella domanda, ma penso che sia il posto giusto per questo.Spiace che un voto" vicino "sia l'unico modo per votare per spostare –
@NathanLong, credo che questa domanda sia precedente al superutente. – daotoad