2011-10-31 9 views
7

Trường hợp sử dụng:Làm (Mac) Vim mở lại với các tập tin mở khi đóng

Bạn có 2-3 tệp được hiển thị trong cửa sổ MacVim của bạn. Bạn nhấn ctrl + Q và MacVim đóng. Khi bạn khởi động lại MacVim, nó sẽ mở ra hiển thị cùng một tệp bạn đã có khi bạn đóng nó.

Bạn có thể làm như thế nào?

- ĐÁP

tôi đã thêm dòng sau vào .vmirc tôi

"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() 

Với điều này tôi gần như có hành vi chính xác tôi muốn, những phiền toái nhỏ duy nhất là tôi vẫn cần phải nhấn lệnh-q sau đó nhưng đó là MacO, chứ không phải vim ....

Trả lời

8

Tôi khuyên bạn nên đọc về các phiên :help session, điều đó sẽ trả lời câu hỏi của bạn. Thậm chí còn có các kịch bản hay để xử lý các phiên.

+0

Cảm ơn bạn mb14, tôi đã có thể đưa ra những gì tôi cần sau khi theo dõi khách hàng tiềm năng – gws

+0

@gws của bạn, bạn có thể viết giải pháp của mình không? Cảm ơn. – J4cK

+0

@Trickster nó được mô tả ở dưới cùng của câu trả lời. Tôi đã ngừng sử dụng MacVim và chuyển sang thiết bị đầu cuối vim nhưng giải pháp đã hoạt động tốt tại thời điểm – gws

3

Tôi khuyên bạn nên sử dụng session.vim Extended session management for Vim để quản lý phiên làm plugin này hoạt động. Bạn có thể tự động lưu phiên hiện tại của bạn mỗi khi bạn đóng vim hoặc tạo phiên mới, đóng/mở vim và tải phiên đó.

13

Cài đặt plugin này: https://github.com/xolox/vim-session

Và thêm sau này hai dòng để .vimrc của bạn:

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

Bây giờ nếu bạn đóng của bạn MacVim/GVim nó tiết kiệm và tải phiên tự động.

+0

Giải pháp tuyệt vời. Cảm ơn vì tiền hỗ trợ! –