почему это вызывает ошибку E523: Not allow here
в простой функции?
function! CheckMode()
echom mode()
exec "normal \<Esc>"
" normal ^[
" call feedkeys('\<esc>')
endfunction
inoremap <expr> <Esc> CheckMode()
На самом деле я хочу сделать:
память в «режиме вставки» и автоматический запуск вставки после возвращения. Например:
function! LeaveBuffer(key)
let b:is_insert_mode = mode() == 'i'
if b:is_insert_mode
exec "normal! \<C-\\>\<C-n>"
endif
exec "normal! \<C-w>".a:key
endfunction
noremap <expr> <C-w>h LeaveBuffer("h")
noremap <expr> <C-w>j LeaveBuffer("j")
noremap <expr> <C-w>k LeaveBuffer("k")
noremap <expr> <C-w>l LeaveBuffer("l")
function! EnterBuffer()
if b:is_insert_mode
startinsert
endif
endfunction
autocmd BufEnter,TermOpen term://** call EnterBuffer()