Vim arabelleğimdeki değişiklikleri yama dosyası olarak nasıl kaydedebilirim?


21

Vim arabelleğimde yaptığım değişiklikleri ayrı bir dosya olarak kaydetmeden ve diff'i kullanmadan orijinal dosya için bir yama dosyası olarak kaydetmenin bir yolu var mı?


2
Vi ve Vim için yeni bir SE beta sitesi var , kontrol etmek isteyebilirsiniz.
15'te Roflo

Yanıtlar:


21

wKomutu kullanarak bir eklenti olmadan bunu yapmak mümkündür , böylece tampon içeriği bir kabuk komutunda kullanılabilir:

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

( %değiştirilen dosyanın yolu ile değiştirilir -, arabelleği stdin'den okur)


2
O diff -u "%" -zamandan beri diffbir çizgiyi stdin'den okunan
roaima

1

Ayrıca diff, %!sözdizimini kullanarak arabelleği filtreleyebilirsiniz :

:%! diff -au "%" -

Bu, arabelleği diske yazmak yerine diff ile dolduracaktır; readonlyorijinali kazara tıkamayacak şekilde ayarlamak isteyebilirsiniz (OTOH, sürüm kontrolü altında dosyaya sahip olduğunuz için ciddi bir sorun olmamalı, değil mi? ). Tabii ki, ters komuta sahip olmanıza yardımcı olur:

:%! patch -o - "%"

Bu farkınızı değiştirilen dosyaya geri dönüştürür.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.