คุณจะใช้ต้นไม้เปลี่ยนแปลงในกลุ่มได้อย่างไร


14

เป็นไปได้หรือไม่ที่จะดึงสาขาการเปลี่ยนแปลงที่ฉัน "ละทิ้ง" ตัวอย่างเช่นฉันเลิกทำการดำเนินการต่าง ๆ โดยใช้uแล้วฉันกำลังทำการเปลี่ยนแปลงในโหมดแทรก แต่แล้วฉันก็รู้ว่าฉันไม่ต้องการเปลี่ยนแปลงสิ่งนี้ฉันอยากกลับไปที่จุดเริ่มต้นของฉัน (ก่อนที่จะเลิกทำ)

การเปลี่ยนแปลงเหล่านี้จะหายไปตลอดกาล?

คำตอบ:


12

สำหรับการนำทางต้นไม้เลิกทำทางออกที่ดีที่สุดของคุณคือใช้ปลั๊กอินGundo สิ่งนี้จะสร้างหน้าต่างแยกใหม่ที่มีการผูกแบบพิเศษเพื่อข้ามไปยังสาขาต่าง ๆ ภายในแผนผังเลิกทำรวมถึงบานหน้าต่างแสดงตัวอย่างที่แสดงให้คุณเห็นถึงสิ่งที่เปลี่ยนแปลงระหว่างแต่ละโหนดในทรี


ตัวเลือกอื่นจะเป็นการ UndoTree
musicmatze

12

g-สำหรับกรณีที่เรียบง่ายเช่นนี้คุณก็สามารถกด

โดยพื้นฐานแล้วสิ่งนี้ทำคือสำรวจรายการเปลี่ยนแปลงตามลำดับเวลา (ถือว่าuเป็นการเปลี่ยนแปลงจริง) แทนที่จะเป็นแบบเชิงเส้น (เช่นเดียวกับu/ <C-r>)

ตัวอย่างเช่นหากคุณแทรกสองสามบรรทัดแล้วกดg-สิ่งนี้จะเกิดขึ้น:

สาธิต


คุณสร้าง gif แบบเคลื่อนไหวได้อย่างไร
guido

4
@guido ผมใช้เครื่องมือที่กำหนดเองที่เรียกว่าmkcast
Doorknob

2

ไม่คุณไม่สามารถย้อนกลับไปข้างหน้าในต้นไม้ได้ วิธีที่ดีที่สุดคือใช้ปลั๊กอินกับงานนี้

ปลั๊กอินอีกเป็นUndotree มันเหมือนกับGundoแต่มีความแตกต่าง:

  1. การใช้ vimscript บริสุทธิ์และไม่จำเป็นต้องใช้ไลบรารีของบุคคลที่สาม (เช่น python) ไม่ต้องกังวลเกี่ยวกับประสิทธิภาพ การพึ่งพาเพียงอย่างเดียวคือเครื่องมือ 'diff' ที่ส่งมาพร้อมกับเสียงเรียกเข้าเสมอและแม้ว่าจะไม่มี 'diff' คุณก็ยังสามารถใช้คุณสมบัติส่วนใหญ่ของสคริปต์นี้ได้
  2. ยกเลิกการปรับปรุงแผนผังเรียลไทม์ เมื่อคุณทำการเปลี่ยนแปลงทรีเลิกทำจะถูกอัปเดตพร้อมกัน
  3. เครื่องหมายที่มีประโยชน์มากมายเช่นเซ็ตการแก้ไขปัจจุบันเซ็ตการแก้ไขถัดไปบันทึกการเปลี่ยนแปลง ฯลฯ
  4. สลับระหว่างการประทับเวลาแบบสัมพัทธ์และการประทับเวลาสัมบูรณ์
  5. อัปเดตหน้าต่างเลิกทำแบบเรียลไทม์
  6. ความสามารถในการล้างประวัติการเลิกทำ
  7. ปรับแต่งได้มากขึ้น

4
คำตอบนี้ไม่ได้หักล้างโดยตรงจากโพสต์ของลูกบิดประตูหรือไม่
Caleb
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.