Come posso salvare le modifiche al mio buffer vim come file patch?


21

Esiste un modo per salvare le modifiche apportate al mio buffer vim come file patch per il file originale, senza salvarlo come file separato e utilizzare diff?


2
C'è un nuovo sito beta SE per Vi e Vim , potresti dare un'occhiata.
Roflo,

Risposte:


21

È possibile farlo senza un plugin usando il wcomando, quindi il contenuto del buffer può essere usato in un comando shell:

:w !diff -au "%" - > changes.patch

( %viene sostituito con il percorso del file in fase di modifica, -legge il buffer dallo stdin)


2
Puoi usare diff -u "%" -poiché diffcapisce un trattino come significato letto da stdin
roaima l'

1

È inoltre possibile filtrare il buffer tramite diffla %!sintassi:

:%! diff -au "%" -

Questo riempirà il buffer con il diff, anziché scriverlo sul disco; potresti voler impostare in readonlymodo da non ostruire accidentalmente l'originale (OTOH, questo non dovrebbe essere un problema serio perché hai il file sotto il controllo della versione, giusto? ). Certo, aiuta ad avere il comando inverso:

:%! patch -o - "%"

Ciò trasforma il tuo differenziale nel file modificato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.