Kararlı sürümden farklılıkları vurgulayan bir Emacs modu var mı?


31

Xcode'un oldukça temiz olduğunu düşündüğüm özelliklerden biri, mevcut tampon ile en son yapılanma arasındaki sürekli farkları gösteren bir "Karşılaştırma" modudur.

Karşılaştırma modu

Emacs için böyle bir şey var mı? Eşzamanlı yan yana görüşlere gerçekten umursamıyorum. Sadece değiştirilen satırların arka planını vurgulamak çok yardımcı olacaktır.

Her zaman yapabileceğimi biliyorum C-x v =, ancak zaman içindeki bir noktanın statik bir görüntüsü ve sadece farkları gösteriyor. Dosyamın tamamını, düzenlenebilir olarak, farklar vurgulanmış olarak görmek istiyorum.

Yanıtlar:


30

Dmitry Gutov'un diff-hl kütüphanesi diff-hl-mode, aşağıdaki ekran görüntüsünde üst pencerede gösterilen saçak işaretini verir (karşılaştırma için alt pencerede görüntülenen gerçek fark ile):

diff-hl ekran görüntüsü

vcVCS agnostik olabilmesi için Emacs'taki genel işlevselliği kullanır . Benioku "Git, Mercurial, Bazaar ve SVN ile test edildi. Diğer VC arka uçlarıyla da çalışabilir."

diff-hl-margin-modeGUI Emacs yerine terminal Emacs kullanıyorsanız kullanılabileceğini unutmayın .

Varsayılan olarak diff-hlyalnızca kaydedilen dosya ile depo arasındaki farkları vurgular ; ancak diff-hl-flydiff-modekaydedilmemiş farklılıkların da vurgulanmasını sağlar, böylece değişiklikleri düzenlerken görebilirsiniz.

Ayrıca yerleşik (standart Emac'lara) dikkat edin highlight-changes-mode. Bu, gerçekten sorununuzu çözülemez, ancak highlight-compare-*işlevler bir çözümü kolaylaştırabilir.


# 33 çözüldü.
Dmitry

1
Dmitry: Gerçekten de - son birkaç gündür deniyorum, ve bu özelliğin çok iyi çalıştığını teyit edebilirim :)
phils

Bunu duyduğuma sevindim; çok sabırlı bir katılımcı tarafından yazılmıştır. Cevabı güncellediğiniz için teşekkürler!
Dmitry

10

Hangi sürüm kontrol sistemini kullandığınızı belirtmezsiniz, ancak git ise, bir satır eklendiğinde, silindiğinde veya değiştirildiğinde kenar boşluklarına bir gösterge koymak için git oluğu kullanabilirsiniz . MELPA'dan aracılığıyla ulaşılabilir M-x package-install git-gutter.


Bu, hayal ettiğim şeye oldukça yakın görünüyor, ancak tampon kaydedildiğinde sadece oluğu güncelliyor gibi görünüyor. Flymake ile bütünleşmenin (veya başka türlü davranması) ne kadar zor olacağını merak ediyorum ...
Ken

10

Ediff'i kontrol etmelisin . Hem farklı gösterebilir hem de (3 yollu) bir birleştirme aracı olarak işlev görebilir. Değişiklikleri kolayca geri almanıza olanak tanır ve ayrıca yalnızca her bir parçanın gerçekte değişen kısımlarını göstermek için rafine farklılıkları vurgular.

ediff ekran görüntüsü

ediff-revision en son taahhütlere veya önceki taahhütlere göre kolayca karşılaştırmanıza izin verecektir.

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.