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:
@@ -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
|
||||
|
||||
|
Reference in New Issue
Block a user