Uma possibilidade seria executar :mksession
periodicamente. O Vim não suporta timers tanto quanto eu sei, mas você pode associar :mksession
a um evento :autocmd
tal como BufNewFile
.
Um possível evento a ser usado nesses casos é VimLeavePre
, por exemplo:
autocmd VimLeavePre * mksession! .vim.sess