2011-10-31 6 views
7

Caso d'uso:Making (Mac) Vim riaprire con i file aperti quando è chiuso

Hai 2-3 file visualizzati nella finestra MacVim (s). Premi Ctrl + Q e MacVim si chiude. Quando riavvii MacVim, si apre la visualizzazione degli stessi file che hai avuto quando lo hai chiuso.

Come puoi farlo?

- RISPOSTA

ho aggiunto il seguente al mio .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() 

Con questo ho quasi avere l'esatto comportamento che volevo, l'unico fastidio minore è che ho ancora bisogno di premere command-q in seguito ma questo è MacOs, non vim ....

risposta

8

Ti suggerisco di leggere le sessioni :help session, che dovrebbero rispondere alla tua domanda. Esistono anche script utili per le sessioni.

+0

Grazie mb14, sono stato in grado di escogitare ciò di cui avevo bisogno dopo aver seguito il tuo lead – gws

+0

@ gws, puoi scrivere la soluzione? Grazie. – J4cK

+0

@Trickster è descritto in fondo alla risposta. Da allora ho smesso di usare MacVim e mi sono trasferito su terminale vim ma la soluzione funzionava perfettamente al momento – gws

3

Suggerisco di utilizzare session.vim Extended session management for Vim per la gestione delle sessioni in quanto questo plug-in funziona correttamente. È possibile salvare automaticamente la sessione corrente ogni volta che si chiude vim o si crea una nuova sessione, si chiude/apre vim e si carica quella sessione.

13

installare questo plugin: https://github.com/xolox/vim-session

e aggiungi a due righe seguenti al vostro .vimrc:

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

Ora, se si chiude il MacVim/GVim salva e carica automaticamente la sessione.

+0

Ottima soluzione. Grazie per il consiglio! –