2009-05-15 8 views
7

Sto cercando di imparare a usare bene vimdiff. Attualmente ho capito come ottenere un blocco di diff da un buffer ad un altro (usando do) ma quello che sono disposto a fare ora è semplicemente ottenere una (o qualche) riga di un blocco nell'altro buffer.Utilizzo di diffect in vimdiff

La documentazione vimdiff dice:

:[range]diffget 

ma non riesco a capire come avere un parametro di intervallo corretto per copiare semplicemente la linea Sono su da un buffer all'altro.

risposta

9

È possibile utilizzare

:.,. 

come vanno dalla linea corrente alla linea di corrente.

In base al documento è possibile omettere l'intervallo, quindi verrà utilizzata la riga o la riga corrente sopra.

+3

senza intervallo copia l'intero blocco diff, non solo la riga corrente. – claf

+3

Non è necessario ', .', solo' .' dovrebbe essere sufficiente. – ZyX

0

Come ha detto Mykola,:.,. specificherà "la linea corrente" come intervallo.

Avevo un file molto grande che richiedeva l'ispezione di ogni riga e forse la modifica, quindi digitare ":.,. Diffput" ogni volta era troppo difficile. Ho registrato una macro:

qq:.,.diffput[ENTER]q 

che ha creato una macro (memorizzato nella chiave "q") a "mettere" una sola riga dal buffer sinistra nel buffer di destra. Ora per ripetere l'azione, tutto quello che devo fare è digitare "@q"

1

lo trovo un po 'più facile per selezionare la linea corrente con V e poi a fare o dp. Questo ha lo stesso effetto della selezione della rabbia con :.,. ma è più facile da digitare! Inoltre, è possibile aggiungere facilmente linee adiacenti con j o k.