วิธีที่ง่ายที่สุดในการทำเช่นนี้คือไฟล์เซสชันซึ่งเป็นสคริปต์ vim (vim นั้นสามารถสร้างให้คุณได้โดยอัตโนมัติ) ซึ่งจะคืนสภาพแวดล้อมการแก้ไขก่อนหน้านี้
:mksession <filename>
คุณสามารถสร้างไฟล์ใหม่โดยใช้เซสชั่น :source <filename>
คุณสามารถเรียกคืนเซสชั่นที่โดยการดำเนินการสคริปต์เซสชั่นที่สร้างขึ้น
ดังนั้นคุณสามารถบันทึกเซสชันปัจจุบันก่อนที่จะขยายหน้าต่างให้ใหญ่สุดและเรียกคืนเมื่อคุณต้องการ "unmaximize" หน้าต่าง
การใช้สิ่งนี้คุณสามารถทำการแมปคำสั่ง windowing ใหม่อีกครั้งเพื่อบันทึกเซสชันไว้ล่วงหน้าและเพิ่มการแม็พใหม่สำหรับหนึ่งถึง "เลิกทำ" คำสั่ง windowing สุดท้ายโดยการกู้คืนเซสชัน ตัวอย่างเช่น:
nnoremap <C-w>o :mksession! ~/session.vim<CR>:wincmd o<CR>
และอื่น ๆ สำหรับคำสั่ง windowing ทั้งหมดที่คุณต้องการสนับสนุน (ดู:help CTRL-W
มีจำนวนมาก) การ!
ป้องกันข้อผิดพลาดที่เกี่ยวข้องกับการเขียนทับไฟล์เซสชั่นที่มีอยู่
nnoremap <C-w>u :source ~/session.vim<CR>
เพื่อ "เลิกทำ" คำสั่ง windowing สุดท้าย
หากคุณต้องการที่จะแข็งแกร่งโดยเฉพาะอย่างยิ่งคุณสามารถขยายสิ่งนี้ผ่านฟังก์ชั่นเพื่อบันทึกไฟล์เซสชั่นในสแต็คและป๊อปออกเพื่อรับห่วงโซ่การเลิกทำแบบเต็มแม้ว่า ณ จุดนั้นมันอาจจะมีประสิทธิภาพมากขึ้น ประวัติคำสั่งหน้าต่างในหน่วยความจำ ... ณ จุดที่คุณมีแนวโน้มที่จะทำซ้ำปลั๊กอินที่ทำสิ่งนี้แล้ว