Tworzenie (Mac)Vima ponownie z plikami otwartymi po zamknięciu

Przypadek użycia:

Masz 2-3 pliki wyświetlane w oknie Macvima. Naciskasz ctrl + Q i MacVim się zamyka. Po ponownym uruchomieniu Macvima otwiera się wyświetlając te same pliki, które miałeś podczas jego zamykania.

Jak możesz to zrobić?

-- odpowiedź

Dodałem co następuje do mojego .vmirc

  "save and close all files and save global session
nnoremap <leader>q :mksession! ~/.vim/Session.vim<CR>:wqa<CR>
  "close all files without saving and save global session
nnoremap <leader>www :mksession! ~/.vim/Session.vim<CR>:qa!<CR>

function! RestoreSession()
  if argc() == 0 "vim called without arguments
    execute 'source ~/.vim/Session.vim'
  end
endfunction
autocmd VimEnter * call RestoreSession()

Z tym prawie mam dokładnie takie zachowanie, jakie chciałem, jedyną drobną uciążliwością jest to, że nadal muszę nacisnąć command-q później, ale to MacOs, a nie vim....

 7
Author: gws, 2011-10-31

3 answers

Proponuję poczytać o sesjach :help session, które powinny odpowiedzieć na twoje pytanie. Są nawet fajne skrypty do radzenia sobie z sesjami.

 8
Author: mb14,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-31 14:56:32

Zainstaluj ten plugin: https://github.com/xolox/vim-session

I dodaj do swojego .vimrc następujące dwie linijki:

let g:session_autosave = 'yes'
let g:session_autoload = 'yes'

Teraz po zamknięciu MacVim / GVim automatycznie zapisuje i ładuje sesję.

 13
Author: Fatih Arslan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-07 20:15:47

Proponuję skorzystać z sesji .Vim Extended session management for vim do zarządzania sesjami, ponieważ ta wtyczka po prostu działa. Możesz automatycznie zapisać bieżącą sesję za każdym razem, gdy zamykasz Vima lub tworzysz nową sesję, zamykasz / otwierasz Vima i ładujesz tę sesję.

 3
Author: afarazit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-05 19:18:21