blob: 41e6c60ca04dee026cc2681fc25e4ea4f51ac22b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
" On leaving insert mode, whether normally or via <Plug>(InsertCancel), check
" if changenr() exceeds the last time we cached it, and flag that a change has
" taken place if it did
function! insert_cancel#Check()
if changenr() > b:insert_cancel_changenr
let b:insert_cancel_changed = 1
endif
endfunction
" On entering insert mode, reset the changed flag and check for a new round of
" changes since insert mode was opened
function! insert_cancel#Enter()
let b:insert_cancel_changed = 0
call insert_cancel#Check()
endfunction
" On cancelling insert mode, if we think we made a change, undo it
function! insert_cancel#Cancel()
if get(b:, 'insert_cancel_changed', 0)
silent undo
endif
endfunction
|