diff --git a/autoload/eskk.vim b/autoload/eskk.vim index 08671ad1..f9debe77 100644 --- a/autoload/eskk.vim +++ b/autoload/eskk.vim @@ -428,7 +428,11 @@ function! s:asym_filter(stash) abort "{{{ call s:do_cancel(a:stash) return elseif char ==# "\" - call s:do_escape(a:stash) + if mode() ==# 'c' && !preedit.empty() + call s:do_cancel(a:stash) + else + call s:do_escape(a:stash) + endif return endif @@ -770,7 +774,9 @@ endfunction "}}} function! s:do_cancel(stash) abort "{{{ let preedit = a:stash.preedit if mode() ==# 'c' - call preedit.push_filter_pre_char("\") + call preedit.set_henkan_phase(g:eskk#preedit#PHASE_NORMAL) + call preedit.clear_all() + call preedit.push_filter_post_char("\") else call preedit.set_henkan_phase(g:eskk#preedit#PHASE_NORMAL) call preedit.clear_all()