คำถามติดแท็ก undo-redo

คำถามเกี่ยวกับการนำทางในประวัติการเลิกทำเลิกทำและทำซ้ำการเปลี่ยนแปลง

1
ฉันจะใช้คำสั่ง undofile ได้อย่างไร
รายการข่าวล่าสุดในvim.orgพูดถึงการใช้ 'เลิกทำ' เพื่อบันทึกประวัติของคุณและยกเลิกการเปลี่ยนแปลงแม้หลังจากรีบูต: ผู้ใช้หลายคนไม่รู้จักคุณสมบัติที่ฉันชอบโดยใช้ตัวเองเนื่องจากฉันพบเมื่อสัปดาห์ที่แล้ว นอกเหนือจากการเลิกทำในหลาย ๆ ระดับตามที่คุณต้องการ Vim ยังมีการจัดเก็บข้อมูลการเลิกทำในไฟล์ ดังนั้นคุณสามารถออกจาก Vim รีบูตเครื่องคอมพิวเตอร์และยกเลิกการเปลี่ยนแปลงที่คุณทำไว้ ดูความช่วยเหลือสำหรับ 'undofile' (Bram Moolenaar) ฉันจะเปิดใช้งานและใช้คุณสมบัตินี้ได้อย่างไร?

3
เลิกทำในโหมดแทรก
มีคำสั่งให้เลิกทำการดำเนินการครั้งล่าสุดเมื่ออยู่ในโหมดแทรกหรือไม่? ฉันเพิ่งวางข้อความจากการลงทะเบียนผิดโดยใช้<C-r>และฉันมีสองตัวเลือก: ลบด้วยมือสิ่งที่ฉันเพิ่งวางและเริ่มต้นใหม่ สลับไปที่โหมดปกติตีและสูญเสียข้อความที่ผมพิมพ์ก่อนกดปุ่มu<C-r> มีวิธีที่ดีกว่า?

5
ฉันจะได้รับการแจ้งเตือนเมื่อฉันเลิกทำการเปลี่ยนแปลงจากการคลายตัวหรือไม่?
ฉันใช้คุณสมบัติ undofileใน Vim มาระยะหนึ่งแล้ว มันเป็นคุณสมบัติที่ดีมาก อย่างไรก็ตามสิ่งหนึ่งที่น่ารำคาญก็คือมันง่ายมากที่จะเลิกทำการเปลี่ยนแปลงโดยไม่ตั้งใจซึ่งเป็นครั้งสุดท้ายที่ฉันเปิดไฟล์ ซึ่งอาจเป็น 2 นาทีที่ผ่านมาชั่วโมงที่ผ่านมาสัปดาห์ที่ผ่านมาหรือเดือนที่ผ่านมา ตัวอย่างเช่นสมมติว่าฉันเปิดไฟล์ทำการเปลี่ยนแปลงเล็กน้อยออกไปและเปลี่ยนแปลงไฟล์อื่น ๆ และพบว่าการเปลี่ยนแปลงของฉันไม่จำเป็นต้องใช้ ก่อนหน้านี้ฉันสามารถกดuปุ่มค้างไว้จนกระทั่ง Vim พูดว่า "การเปลี่ยนแปลงที่เก่าแก่ที่สุด" :wqและจะเสร็จสิ้น แต่ตอนนี้ฉันต้องระวังอย่างมากที่จะไม่ยกเลิกการเปลี่ยนแปลงที่ฉันทำครั้งล่าสุดที่ฉันเปิดไฟล์ ไม่มีวิธีที่ชัดเจนที่จะเห็นเมื่อคุณทำเช่นนี้ มีวิธีใดที่จะทำให้ชัดเจนยิ่งขึ้น? ตัวอย่างเช่นการแสดงที่ใดที่หนึ่งออกคำเตือนหรือแม้กระทั่งขอการยืนยัน

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

3
ฉันสามารถยกเลิกหลาย ๆ ครั้งใน nvi และ / หรือ vi เดิมได้หรือไม่
บางครั้งฉันอยู่ในระบบที่ไม่มี Vim และใช้ค่าเริ่มต้นnvi(ระบบ BSD) หรือดั้งเดิมvi(Arch Linux) ค่อนข้างมีความแตกต่างน้อยมี แต่แกล้งใหญ่ที่สุดคือว่าผมสามารถยกเลิก เฉพาะการดำเนินงานที่ผ่านมาของฉัน การกดuครั้งที่สองทำงานเป็น "ทำซ้ำ" มีวิธีการทำงานนี้หรือไม่?

3
ไฮไลต์เลิกทำในกลุ่ม
ฉันกำลังพยายามยกเลิกการเน้นใน Vim เช่นการกำหนดค่าเริ่มต้นของ spacemacs บางครั้งเมื่อฉันต้องการเลิกทำอย่างรวดเร็วฉันไม่สามารถรับรู้สิ่งที่เปลี่ยนแปลงไปได้เพราะมันเกิดขึ้นทันที ดังนั้นฉันจึงพยายามที่จะมีสิ่งนี้เมื่อกดยกเลิก: ใครมีความคิดวิธีการทำเช่นนี้ในกลุ่ม? (ฉันมีปลั๊กอิน Gundo อยู่แล้วฉันต้องการทำให้การยกเลิกเริ่มต้นราบรื่นยิ่งขึ้น) แก้ไข : ปลั๊กอินundotreeใช้งานได้ ( Gundoไม่เน้นการเปลี่ยนแปลง) เพียงใช้UndotreeToggleคำสั่งและการเปลี่ยนแปลงในอนาคตทั้งหมดในไฟล์จะถูกเน้น

4
ฉันจะยกเลิกการเปลี่ยนแปลงที่ฉันอาจทำหรือไม่ได้ทำอย่างปลอดภัยได้อย่างไร
บ่อยครั้งที่ฉันทำผิดพลาดในการพิมพ์โดยเน้นหน้าต่างผิด (และทำเช่นนั้นสองสามครั้งด้วยตัวตรวจสอบสิทธิ์ USB) ในโปรแกรมที่เปิดใช้งานปุ่มลัดจำนวนมาก (Gmail, VLC, Vim) สิ่งนี้มักจะเกิดขึ้นโดยไม่ได้ตั้งใจจากการแก้ไขที่ไม่ต้องการ บางครั้งฉันสามารถติดตามขั้นตอนของฉันและจดจำสิ่งที่ฉันพิมพ์เพื่อซ่อมแซมการเปลี่ยนแปลงหรือคืนค่าการตั้งค่าใด ๆ ที่ฉัน tweaked ถ้าฉันจับตัวเองก่อน น่าเสียดายที่มันไม่ได้เป็นอย่างนั้นเสมอไป ในกลุ่มฉันอาจมีบางสิ่งบางอย่างที่ไร้เดียงสาและชัดเจนเหมือนกับการแก้ไขบรรทัดข้อความที่ยกเลิกได้อย่างง่ายดาย หรือฉันอาจแก้ไขบางอย่างโดยไม่รู้ตัวซึ่งไม่สามารถระบุได้ง่าย หากฉันพิมพ์ลำดับของคำสั่งที่ไม่ต้องการใน Vim โดยไม่ตั้งใจฉันจะตรวจสอบและเลิกทำการแก้ไขหรือเปลี่ยนแปลงการตั้งค่าได้อย่างไร
12 undo-redo 


1
จะเปลี่ยนวิธีการยกเลิกแบบละเอียดเป็นกลุ่มได้อย่างไร?
uในบางจุดที่เป็นกลุ่มของฉันจะยกเลิกคำทั้งหมดเมื่อกด [i]typing some words[C-c][u] จะส่งผลให้ typing some อย่างไรก็ตามการเลิกทำแบบย่อดูเหมือนจะเปลี่ยนเป็นการลบจดหมายทีละครั้ง [i]typing some words[C-c][u] ผลลัพธ์ใน typing some word ฉันจำได้ว่าอ่านอะไรบางอย่างเกี่ยวกับการปรับแต่งการเลิกเป็นกลุ่มใน Practical Vim แต่ฉันจำไม่ได้ว่าจะควบคุมมันอย่างไร ความช่วยเหลือใด ๆ ชื่นชม!
11 undo-redo 

2
ค้นหาไฟล์ทุกรุ่นในแผนผังเลิกทำ
มีวิธีที่ง่ายกว่าในการค้นหาการเปลี่ยนแปลงที่เฉพาะเจาะจงในแผนผังการเลิกทำ Vim มากกว่าแค่ดูไฟล์แบบเก่าแบบสุ่มทีละไฟล์ (ไม่ว่าจะใช้คำสั่ง vanilla VIM, Gundo หรือปลั๊กอินอื่น)? โดยอุดมคติแล้วฉันต้องการป้อนรูปแบบการค้นหาที่จะจับคู่กับ diffs ทั้งหมดที่แสดงในบานหน้าต่างแสดงตัวอย่างโดย Gundo แล้วให้ Gundo แสดงให้ฉันเห็นว่าเวอร์ชันใดมี diffs ที่ตรงกับการค้นหานั้น คำถามนี้ถามอะไรบางอย่างที่เกือบจะเหมือนกัน แต่ผู้ถามยอมรับคำตอบที่แนะนำ Gundo เพียงอย่างเดียวซึ่งน่าอัศจรรย์แม้ว่ามันจะดูเหมือนจะไม่ทำสิ่งที่ฉันขอ ฉันได้แหลมนี้เป็นคุณสมบัติใหม่สำหรับ Gundoแต่ไม่ได้รับคำตอบ แก้ไข:มีการร้องขอแบบเปิดสำหรับคุณลักษณะนี้เพื่อเลิกใช้ หมายเหตุ:คำถามนี้ได้รับการ "อพยพด้วยตนเอง" จากsuperuser
11 undo-redo 

2
เป็นไปได้ไหมที่จะลบรายการออกจากประวัติการเลิกทำ?
ฉันมีบรรทัดเหล่านี้ใน. vimrc ของฉันเพื่อช่วยในการเยื้อง: autocmd BufReadPost * set noexpandtab | retab! 4 autocmd BufWritePre * set expandtab | retab! 4 autocmd BufWritePost * set noexpandtab | retab! 4 อย่างไรก็ตามพวกเขาสร้างเสียงดังมากในประวัติศาสตร์การเลิกทำ เนื่องจากพวกเขาไม่ได้ทำอะไรจากมุมมองของผู้ใช้ฉันต้องการลบพวกเขาออกจากประวัติหรืออย่างน้อยก็ต้องกำจัดพวกเขาอย่างใดอย่างหนึ่ง มีวิธีทำเช่นนั้นหรือไม่?
10 vimrc  undo-redo 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.