0
0
mirror of https://github.com/vim/vim.git synced 2025-10-18 07:54:29 -04:00

patch 8.2.1874: can't do something just before leaving Insert mode

Problem:    Can't do something just before leaving Insert mode.
Solution:   Add the InsertLeavePre autocommand event. (closes #7177)
This commit is contained in:
Bram Moolenaar
2020-10-21 12:19:53 +02:00
parent 20d89e0ac6
commit b53e13a91a
6 changed files with 27 additions and 5 deletions

View File

@@ -1446,31 +1446,40 @@ endfunc
func Test_edit_InsertLeave()
new
au InsertLeavePre * let g:did_au_pre = 1
au InsertLeave * let g:did_au = 1
let g:did_au_pre = 0
let g:did_au = 0
call feedkeys("afoo\<Esc>", 'tx')
call assert_equal(1, g:did_au_pre)
call assert_equal(1, g:did_au)
call assert_equal('foo', getline(1))
let g:did_au_pre = 0
let g:did_au = 0
call feedkeys("Sbar\<C-C>", 'tx')
call assert_equal(1, g:did_au_pre)
call assert_equal(0, g:did_au)
call assert_equal('bar', getline(1))
inoremap x xx<Esc>
let g:did_au_pre = 0
let g:did_au = 0
call feedkeys("Saax", 'tx')
call assert_equal(1, g:did_au_pre)
call assert_equal(1, g:did_au)
call assert_equal('aaxx', getline(1))
inoremap x xx<C-C>
let g:did_au_pre = 0
let g:did_au = 0
call feedkeys("Sbbx", 'tx')
call assert_equal(1, g:did_au_pre)
call assert_equal(0, g:did_au)
call assert_equal('bbxx', getline(1))
bwipe!
au! InsertLeave
au! InsertLeave InsertLeavePre
iunmap x
endfunc