Vim'de değişiklik ağacını nasıl kullanıyorsunuz


14

"Vazgeçtiğim" değişiklik dalını geri almak mümkün mü? Örneğin, kullanarak birkaç işlemi geri alıyorum u, sonra ekleme modunda bir değişiklik yapıyorum. Ama sonra bu değişikliğe sahip olmak istemediğimin farkına varıyorum, başlangıçta (geri almadan önce) bulunduğum yere geri dönmeyi tercih ederim.

Bu değişiklikler sonsuza dek kayboldu mu?

Yanıtlar:


12

Geri alma ağacında gezinmek için en iyi seçenek Gundo eklentisini kullanmaktır . Bu, geri alma ağacındaki farklı dallara atlamak için özel bağlamaları olan yeni bir bölünmüş pencere ve ağaçtaki her düğüm arasında tam olarak neyin değiştiğini gösteren bir önizleme bölmesi oluşturur.


Başka bir seçenek UndoTree olacaktır.
musicmatze

12

Bunun gibi basit durumlar için düğmesine basmanız yeterlidir g-.

Temel olarak, bunun yaptığı, değişiklik listesini udoğrusal olarak ( u/ ile olduğu gibi) değil, kronolojik olarak (a gerçek bir değişiklik olarak kabul edilir) geçirmektir <C-r>.

Örneğin, birkaç satır eklediyseniz ve tuşuna basarsanız g-, bu gerçekleşir:

gösteri


nasıl animasyonlu gif yarattın?
guido

4
@guido mkcast adında özel bir araç kullandım .
Doorknob

2

Hayır, ağaçta ileri geri gidemezsiniz. En iyi yol, bu işe bir eklenti kullanmaktır.

Başka bir eklenti Undotree . Gundo'ya benziyor , ancak bazı farklılıklarla:

  1. Saf vimscript uygulaması ve 3. parti kitaplıklara (python gibi) gerek yoktur, performans konusunda endişelenmeyin, vim'in bunu ele alması çok önemli değil. Tek bağımlılık, her zaman vim ile gönderilen 'diff' aracıdır ve 'diff' olmadan bile bu komut dosyasının özelliklerinin çoğunu kullanabilirsiniz.
  2. Gerçek zamanlı güncellenmiş ağacı geri al. Değişiklik yaptıktan sonra, geri alma ağacı aynı anda güncellenir.
  3. Geçerli değişiklik kümesi, bir sonraki yeniden değişiklik kümesi, kaydedilmiş değişiklik kümesi vb. Gibi birkaç yararlı işaret.
  4. Göreli zaman damgası ile mutlak zaman damgası arasında geçiş yapın.
  5. Gerçek zamanlı güncelleme geri alma penceresi.
  6. Geçmişi geri alma yeteneği.
  7. Daha özelleştirilebilir.

4
Bu cevap doorknob'un gönderisi tarafından doğrudan doğrulanmıyor mu?
Caleb
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.