2012-05-23 14 views
18

Ho una riga di testo che ho strappato yy. Ora voglio usare questo testo per sostituire le linee in molti altri posti. Il problema è che quando seleziono V la riga da sostituire e incolliamo p, il testo che è stato selezionato viene automaticamente strappato! Questo è quello che non voglioIn che modo è possibile mantenere il contenuto del registro quando si incolla il testo selezionato?

La modifica del registro non funziona, poiché sia ​​la pasta che lo strappo vengono eseguiti con il registro appena selezionato.

Qual è il comando per mantenere il contenuto del registro quando si incolla sul testo selezionato?

+0

Probabilmente lo sapete già, ma penso che si possa sempre aggirare il problema con 'pdd'. – a3nm

+0

@ a3nm Non intendete 'pyy', che copierà di nuovo la riga corrente? –

+0

Mi spiace, intendevo 'pjdd'. Detto questo, non capisco il tuo suggerimento. – a3nm

risposta

15

Ogni volta che si immette il valore predefinito su p.

Per aggirare questa funzionalità è necessario utilizzare "_, "il registro del buco nero", prima di p. Ecco una mappatura personalizzata ho nel mio ~/.vimrc:

vnoremap <leader>p "_dP 

elimina il contenuto selezionato e lo lascia cadere nel registro buco nero (questo significa che il testo selezionato scompare per sempre) e mette il contenuto del registro di default in posto del testo selezionato in precedenza lasciando intatto il registro predefinito.

Lo uso spesso quando ho bisogno di sostituire un URL loooooooong in pochi posti con un altro URL lento e creare un s// sarebbe troppo ingombrante.

18

La selezione originale deve rimanere nel registro 0. In questo modo è possibile spostarsi all'interno del file e incollare la linea strattonata su altre linee utilizzando: V"0p

+4

Inoltre, usare ': reg' per guardare il contenuto del registro corrente. [Questo] (http://blog.dreasgrech.com/2010/06/vims-black-hole-register.html) è una buona spiegazione dei registri, tra cui il registro dei buchi neri e i registri buffer _kill 0-9 . Infine: ': help register', natch. – pb2q

+0

Questa è la risposta migliore. Non è necessario inviare contenuto cancellato al registro dei buchi neri quando esiste già un registro creato appositamente per trattenere il testo strappato – rviertel

Problemi correlati