📅  最后修改于: 2022-03-11 15:00:30.839000             🧑  作者: Mango
set noswapfile " Write swap and backup files
set noautoread " together with :checktime (and set confirm), prompt to reload file
set confirm " get a dialog when :q, :w, or :wq fails
" Detect file modified elsewhere {{{
" forgot where i got it from :(
augroup AutoSwap
autocmd!
autocmd SwapExists * call AS_HandleSwapfile(expand(':p'), v:swapname)
augroup END
function! AS_HandleSwapfile (filename, swapname)
" if swapfile is older than file itself, just get rid of it
if getftime(v:swapname) < getftime(a:filename)
call delete(v:swapname)
let v:swapchoice = 'e'
endif
endfunction
autocmd BufWritePost,BufReadPost,BufLeave *
\ if isdirectory(expand(":h")) | let &swapfile = &modified | endif
augroup checktime
autocmd!
if !has("gui_running")
"silent! necessary otherwise throws errors when using command
"line window.
autocmd BufEnter,CursorMoved,CursorMovedI * checktime
autocmd FocusGained,BufEnter,FocusLost,WinLeave * checktime
endif
augroup END