Если вы хотите автоматизировать процесс без использования каких-либо плагинов, вы можете использовать Уходить и возвращаться из Vim Tips Wiki .
Каждый раз, когда вы выходите из Vim, он сохраняет текущий сеанс в ~/.vim/sessions
и загружает его снова после открытия Vim. Он также основан на вашем текущем пути, поэтому, если вы откроете Vim из разных каталогов, у вас будут разные сессии, что весьма полезно при работе над разными проектами.
Просто отредактируйте файл ~/.vimrc
и добавьте следующее:
function! MakeSession()
let b:sessiondir = $HOME . "/.vim/sessions" . getcwd()
if (filewritable(b:sessiondir) != 2)
exe 'silent !mkdir -p ' b:sessiondir
redraw!
endif
let b:filename = b:sessiondir . '/session.vim'
exe "mksession! " . b:filename
endfunction
function! LoadSession()
let b:sessiondir = $HOME . "/.vim/sessions" . getcwd()
let b:sessionfile = b:sessiondir . "/session.vim"
if (filereadable(b:sessionfile))
exe 'source ' b:sessionfile
else
echo "No session loaded."
endif
endfunction
" Adding automatons for when entering or leaving Vim
au VimEnter * nested :call LoadSession()
au VimLeave * :call MakeSession()
Даже для начинающего этот скрипт несколько прост для понимания и настройки.
Обратите внимание, этот скрипт будет правильно работать только для систем Unix (MacOS / Linux), его необходимо адаптировать для работы в Windows.
ОБНОВЛЕНИЕ: Добавляя предложение 0xc0de , вы можете заменить строку VimEnter
на эти, если вы хотите, чтобы Vim загружал сессию , только если аргументы не предоставлены
if(argc() == 0)
au VimEnter * nested :call LoadSession()
endif