aboutsummaryrefslogtreecommitdiff
path: root/autoload/insert_timeout.vim
blob: 3dfe9ad9f2f030abd5de4f31b7805fa716a85c53 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
" Set update time to configured variable or default 20 seconds for duration of
" insert
function! insert_timeout#() abort

  " Save current value of 'updatetime' into script variable
  let s:updatetime = &updatetime

  " Set 'updatetime' to configured variable or default
  let &updatetime = get(g:, 'insert_timeout_duration', 20000)

  " Restore 'updatetime' when insert mode ends
  autocmd insert_timeout InsertLeave *
        \ let &updatetime = s:updatetime
        \|autocmd! insert_timeout InsertLeave

  " Stop the insert after 'updatetime' seconds
  autocmd insert_timeout CursorHoldI *
        \ stopinsert
        \|autocmd! insert_timeout CursorHoldI

endfunction