วิธีย้อนกลับ (ctrl + z) ใน vi / vim


108

ในโปรแกรมแก้ไขข้อความปกติ [เกี่ยวกับ Vim] มีทางลัดCtrl+ Zเมื่อคุณทำสิ่งที่น่ารังเกียจและต้องการกลับไปใช้ข้อความเวอร์ชันก่อนหน้า ชอบปุ่มย้อนกลับใน Word ฉันสงสัยว่าคุณจะบรรลุพฤติกรรมนี้ใน Vim ได้อย่างไร



1
เอกสาร Vim นั้นดีมาก:help undoเช่นกันตัวอย่างเช่นคุณจะพบคำตอบของคุณ
Chris Morgan

2
ก่อนที่จะดำน้ำเป็นกลุ่มอย่างสมบูรณ์ฉันขอแนะนำให้คุณอ่านบทช่วยสอน (แบบโต้ตอบ)
karth

1
ขอบคุณทุกคนและขอโทษสำหรับ q นี้ ต้องอ่านเพิ่มเติมในครั้งต่อไป
Slazer

1
บน linux, CTRL-Z ใน vi / vim / gvim หมายถึงการหลีกเลี่ยงไปที่คอนโซลหรือวางไว้ในพื้นหลัง จากนั้นคุณทำสิ่งที่คุณต้องการบนคอนโซลและพิมพ์ fg (พื้นหน้า) เพื่อนำคุณกลับเข้าสู่เซสชันการแก้ไขเป็นกลุ่ม
mancocapac

คำตอบ:


192

คุณสามารถใช้uปุ่มเพื่อเลิกทำการแก้ไขล่าสุด (และCtrl+ Rเพื่อทำซ้ำ)

อ่านเพิ่มเติมได้ที่: http://vim.wikia.com/wiki/Undo_and_Redo


2
ฉันจับคู่ U เพื่อทำซ้ำเพื่อให้ฉันสามารถยกเลิก / ทำซ้ำได้อย่างรวดเร็วประวัติการแก้ไขทั้งหมดหากจำเป็นใน vimrc: nnoremap U <CR>
NeilG

10

คำตอบu(และคนอื่น ๆ อีกหลายคน) $ vimtutorอยู่ใน


โหวตขึ้นเท่านั้นเพราะฉันไม่เคยได้ยินมาvimtutorก่อน
Paiusco

4

นี่คือเคล็ดลับว่า คุณสามารถแมปปุ่มCtrl+ Zสามารถทำได้โดยการแก้ไข.vimrcไฟล์ เพิ่มบรรทัดต่อไปนี้ในไฟล์ ".vimrc"

nnoremap <c-z> :u<CR>      " Avoid using this**
inoremap <c-z> <c-o>:u<CR>

นี่อาจไม่ใช่วิธีที่ต้องการ แต่สามารถใช้ได้

** Ctrl+ Zใช้ใน Linux เพื่อระงับโปรแกรม / กระบวนการที่กำลังดำเนินอยู่


1

ในโหมดปกติกด:

  • u- เลิกทำ ,
  • Ctrl+ r- ทำซ้ำเปลี่ยนแปลงซึ่งยกเลิก ( ยกเลิกundos )

เลิกทำและทำซ้ำ


ฉันรู้ว่าคำตอบส่วนใหญ่ซ้ำกับคำตอบที่มีอยู่แล้วแต่การเพิ่มมูลค่าของคำตอบของฉันจะทำซ้ำเป็นCtrl + r(ตัวพิมพ์เล็กr) ตามเอกสาร ไม่เคยมีใครมาก่อนใส่ไว้ที่นี่ นอกจากนี้ฉันพยายามทำให้คำตอบชัดเจนที่สุด
simhumileco

0

บน Mac คุณยังสามารถใช้คำสั่ง Z และจะเลิกทำ ฉันไม่แน่ใจว่าทำไม แต่บางครั้งมันก็หยุดลงและถ้าคุณชอบฉันและ vimtutor อยู่ที่ด้านล่างของรายการสิ่งที่คุณต้องเรียนรู้มากมายเกินกว่าที่คุณจะปิดหน้าต่างแล้วเปิดใหม่อีกครั้งและควรจะทำงานได้ดี


0

ตอนนี้ฉันมีปัญหาเดียวกันและฉันก็แก้ไขได้ คุณไม่ต้องการมันอีกต่อไปดังนั้นฉันจึงเขียนเพื่อคนอื่น:

หากคุณใช้gvimบนwindowsคุณเพียงแค่เพิ่มสิ่งนี้ใน_vimrcของคุณ: $VIMRUNTIME/mswin.vim behave mswin

อื่นก็ใช้ imap ...

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