Cara paling sederhana untuk melakukan ini mungkin dengan file sesi, yaitu skrip vim (yang vim dapat hasilkan secara otomatis untuk Anda) yang akan memulihkan lingkungan pengeditan sebelumnya.
Anda dapat membuat file sesi baru menggunakan :mksession <filename>
. Anda dapat memulihkan sesi itu dengan menjalankan skrip sesi yang dibuat :source <filename>
,.
Dengan demikian, Anda bisa menyimpan sesi saat ini sebelum memaksimalkan jendela dan mengembalikannya ketika Anda ingin "unmaximize" jendela.
Dengan menggunakan ini, Anda bisa memetakan ulang perintah windowing yang sesuai untuk menyimpan sesi sebelumnya, dan menambahkan pemetaan baru untuk "membatalkan" perintah windowing terakhir dengan mengembalikan sesi. Sebagai contoh:
nnoremap <C-w>o :mksession! ~/session.vim<CR>:wincmd o<CR>
dan seterusnya untuk semua perintah windowing yang ingin Anda dukung (lihat :help CTRL-W
, ada banyak). The !
mencegah kesalahan yang berkaitan dengan Timpa file sesi yang ada.
nnoremap <C-w>u :source ~/session.vim<CR>
untuk "membatalkan" perintah windowing terakhir.
Jika Anda ingin menjadi sangat kuat, Anda dapat memperluas ini melalui fungsi untuk menyimpan file sesi dalam tumpukan dan menghapusnya untuk mendapatkan rantai undo penuh, meskipun pada saat itu mungkin lebih efisien untuk menulis banyak fungsi untuk melacak jendela perintah sejarah di memori ... di mana Anda kemungkinan menduplikasi plugin yang sudah melakukan hal semacam ini.