เป็นกลุ่มสามารถทำเช่นนี้แม้ว่ามันอาจจะ clunky บิตและใช้การตั้งค่าบางอย่าง
romainlsession
ทำให้คุณได้รับครึ่งด้วย บิตที่ขาดหายไปเป็นไฟล์แลกเปลี่ยน:preserve
และธง&
cpoptions
ไฟล์ Swap มีไว้สำหรับการกู้คืนหาก Vim หรือระบบของคุณล่ม มันช่วยให้คุณสามารถกู้คืนการเปลี่ยนแปลงใด ๆ ที่ยังไม่ได้บันทึก (โดยมีข้อ จำกัด บางประการดู:he swap-file
) อย่างไรก็ตามเมื่อ Vim ออกตามปกติมันจะลบไฟล์ swap ใด ๆ ที่ใช้อยู่แม้ว่าบัฟเฟอร์จะมีการเปลี่ยนแปลงที่ไม่ได้บันทึกก็ตาม
นั่นคือสิ่งที่:preserve
และcpoptions
's &
มาใน. :preserve
กองกำลังที่เป็นกลุ่มที่จะเขียนบัฟเฟอร์ทั้งหมดไปยังไฟล์แลกเปลี่ยนทันที (เมื่อเทียบกับมาตรฐานหลังจาก 4 วินาทีหรือ 200 ตัวอักษรหรือสิ่งที่ตัวเลือกของคุณได้ตั้งค่าให้) การทำ:set cpoptions+=&
จะบอกเป็นกลุ่มว่าจะไม่ลบไฟล์สลับที่บันทึกด้วย:preserve
เมื่อออกจากปกติ
น่าเสียดายที่ Vim ไม่ได้ทำการล้างข้อมูลไฟล์สวอปโดยอัตโนมัติเมื่อทำการกู้คืนจากไฟล์เหล่านั้นดังนั้นคุณสามารถจบลงด้วยไดเรกทอรีที่มีลักษณะดังนี้:
.foo.txt.swn
.foo.txt.swo
.foo.txt.swp
foo.txt
คุณสามารถลบไฟล์เก่าได้ด้วยตนเอง แต่ Vim จะเสนอให้กู้คืนโดยอัตโนมัติหากมี*.swp
ไฟล์ที่จะใส่ไฟล์ swap ใหม่ :recover
คำสั่งจะบังคับให้เป็นกลุ่มที่จะมองหาการแลกเปลี่ยนไฟล์ที่จะกู้คืนจาก
ด้วยการใช้คำสั่งอัตโนมัติคุณสามารถทำการรักษาโดยอัตโนมัติ (อาจเป็นกับQuitPre
เหตุการณ์) และการกู้คืน (อาจมีBufRead
หรือBufReadPost
) Recover.vimเป็นปลั๊กอินที่อาจทำงานเป็นทางเลือกที่เป็นมิตรสำหรับการจัดการการกู้คืน ดูเหมือนว่าจะจัดการล้างไฟล์ swap ด้วย ฉันไม่แน่ใจว่ามันจะจัดการกับไดเรกทอรีที่มี.swo
แต่ไม่มี.swp
ไฟล์ได้อย่างไร คุณอาจต้องใช้:recover
สำหรับกรณีดังกล่าว
vim-obsessionเป็นปลั๊กอินที่อ้างว่าทำให้การจัดการเซสชันง่ายขึ้นมาก