Trong Vim, cách gần nhất bạn có thể nhận được là (như câu trả lời của Ingo và nhận xét của Christian đã đề cập) là:
augroup viminfo
autocmd!
autocmd FocusLost * wviminfo
autocmd FocusGained * rviminfo
augroup end
Điều quan trọng là phải nhận ra rằng Focus*
autocommands không luôn chạy khi bạn sử dụng Vim từ thiết bị đầu cuối, đặc biệt là nếu bạn đang sử dụng tmux hoặc màn hình. Bạn nên kiểm tra điều này trước bằng cách sử dụng :au FocusLost :echoerr "Focus lost!"
.
Theo như tôi biết thì không có cách giải quyết tốt nếu những autocommands này không phù hợp với bạn. Sử dụng các sự kiện khác (như CursorHold
) có vẻ có vấn đề với tôi do vấn đề thời gian gần như chắc chắn sẽ tăng lên.
Neovim đi kèm với "ShaDa", một sự thay thế cho hệ thống viminfo của Vim. Một khía cạnh tốt hơn là hợp nhất các tệp từ các phiên bản khác nhau và mặc dù nó không hỗ trợ trực tiếp đồng bộ hóa giữa nhiều phiên bản ( nhưng ), điều này dường như hoạt động tốt cho ít nhất một nhà phát triển Neovim :
augroup shada
autocmd!
autocmd CursorHold * rshada | wshada
augroup end
Xem :help shada-merging
để biết chi tiết về quá trình sáp nhập.