From 9f9c8e8cbd9e001a0e5f8d440ecdde181d53bbca Mon Sep 17 00:00:00 2001 From: kyouryuukunn Date: Sun, 10 May 2026 12:04:06 +0900 Subject: [PATCH 1/6] add back_to_normal key --- autoload/eskk.vim | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/autoload/eskk.vim b/autoload/eskk.vim index 08671ad1..01f39857 100644 --- a/autoload/eskk.vim +++ b/autoload/eskk.vim @@ -74,6 +74,7 @@ let s:eskk_mappings = { \ 'phase:henkan-select:choose-prev': {}, \ 'phase:henkan-select:next-page': {}, \ 'phase:henkan-select:prev-page': {}, + \ 'phase:henkan-select:back_to_henkan': {}, \ 'phase:henkan-select:escape': {}, \ 'phase:henkan-select:delete-from-dict': {}, \ 'mode:hira:toggle-hankata': {'fn': eskk#util#get_local_func('handle_toggle_hankata', s:SID_PREFIX)}, @@ -119,6 +120,7 @@ let s:MODE_LOCAL_KEYS = { \ 'phase:henkan-select:next-page', \ 'phase:henkan-select:prev-page', \ 'phase:henkan-select:escape', + \ 'phase:henkan-select:back_to_henkan', \ 'mode:hira:toggle-hankata', \ 'mode:hira:ctrl-q-key', \ 'mode:hira:toggle-kata', @@ -141,6 +143,7 @@ let s:MODE_LOCAL_KEYS = { \ 'phase:henkan-select:next-page', \ 'phase:henkan-select:prev-page', \ 'phase:henkan-select:escape', + \ 'phase:henkan-select:back_to_henkan', \ 'mode:kata:toggle-hankata', \ 'mode:kata:ctrl-q-key', \ 'mode:kata:toggle-kata', @@ -163,6 +166,7 @@ let s:MODE_LOCAL_KEYS = { \ 'phase:henkan-select:next-page', \ 'phase:henkan-select:prev-page', \ 'phase:henkan-select:escape', + \ 'phase:henkan-select:back_to_henkan', \ 'mode:hankata:toggle-hankata', \ 'mode:hankata:ctrl-q-key', \ 'mode:hankata:toggle-kata', @@ -408,6 +412,8 @@ function! s:asym_filter(stash) abort "{{{ let delete_from_dict = eskk#util#key2char(delete_from_dict) let choose_prev = get(mappings['phase:henkan-select:choose-prev'], 'lhs', '') let choose_prev = eskk#util#key2char(choose_prev) + let back_to_henkan = get(mappings['phase:henkan-select:back_to_henkan'], 'lhs', '') + let back_to_henkan = eskk#util#key2char(back_to_henkan) " Convert to real key if sticky_char ==# '' && phase ==# g:eskk#preedit#PHASE_NORMAL let sticky_char = "\" @@ -455,6 +461,14 @@ function! s:asym_filter(stash) abort "{{{ if char ==# ' ' call preedit.choose_next_candidate(a:stash) return + elseif char ==# back_to_henkan + let henkan_result = eskk#get_skk_dict().get_henkan_result() + if !empty(henkan_result) + call preedit.set_henkan_phase(g:eskk#preedit#PHASE_HENKAN) + let yomi = henkan_result.get_key() + let buf_str = preedit.get_buf_str(g:eskk#preedit#PHASE_HENKAN) + call buf_str.rom_pairs.set_one_pair(yomi, yomi, {'converted': 1}) + endif elseif char ==# choose_prev call preedit.choose_prev_candidate(a:stash) return From 26b304b6012ddaf20717ef5b46a271aad522e83f Mon Sep 17 00:00:00 2001 From: kyouryuukunn Date: Sun, 10 May 2026 13:15:57 +0900 Subject: [PATCH 2/6] allow back_to_normal key in HenkanResult_select_candidate_prompt --- autoload/eskk/dictionary.vim | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/autoload/eskk/dictionary.vim b/autoload/eskk/dictionary.vim index b8252f79..bcb21eba 100644 --- a/autoload/eskk/dictionary.vim +++ b/autoload/eskk/dictionary.vim @@ -412,6 +412,8 @@ function! s:HenkanResult_select_candidate_prompt(skip_num, fallback) abort dict let mappings = eskk#_get_eskk_mappings() let prev_page = get(mappings['phase:henkan-select:prev-page'], 'lhs', '') let prev_page = eskk#util#key2char(prev_page) + let back_to_henkan = get(mappings['phase:henkan-select:back_to_henkan'], 'lhs', '') + let back_to_henkan = eskk#util#key2char(back_to_henkan) call eskk#util#assert( \ len(words) > a:skip_num, @@ -456,6 +458,10 @@ function! s:HenkanResult_select_candidate_prompt(skip_num, fallback) abort dict if char ==# "\" return a:fallback + elseif char ==# back_to_henkan + let self._candidates_index = -1 + call self.preedit.set_henkan_phase(g:eskk#preedit#PHASE_HENKAN) + return [self._key, self._okuri] elseif char ==# ' ' if eskk#util#has_idx(pages, page_index + 1) let page_index += 1 From c015d0de8cbd7a3575410e535726bc2036bd36c2 Mon Sep 17 00:00:00 2001 From: kyouryuukunn Date: Sun, 10 May 2026 13:23:00 +0900 Subject: [PATCH 3/6] allow remap phase:henkan-select:escape --- autoload/eskk/dictionary.vim | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/autoload/eskk/dictionary.vim b/autoload/eskk/dictionary.vim index bcb21eba..a8ec850f 100644 --- a/autoload/eskk/dictionary.vim +++ b/autoload/eskk/dictionary.vim @@ -414,6 +414,8 @@ function! s:HenkanResult_select_candidate_prompt(skip_num, fallback) abort dict let prev_page = eskk#util#key2char(prev_page) let back_to_henkan = get(mappings['phase:henkan-select:back_to_henkan'], 'lhs', '') let back_to_henkan = eskk#util#key2char(back_to_henkan) + let escape = get(mappings['phase:henkan-select:escape'], 'lhs', '') + let escape = eskk#util#key2char(escape) call eskk#util#assert( \ len(words) > a:skip_num, @@ -456,7 +458,7 @@ function! s:HenkanResult_select_candidate_prompt(skip_num, fallback) abort dict endtry - if char ==# "\" + if char ==# escape return a:fallback elseif char ==# back_to_henkan let self._candidates_index = -1 From 0f4fffd820f2720c15cb28373f9d95d439d538c1 Mon Sep 17 00:00:00 2001 From: kyouryuukunn Date: Sun, 10 May 2026 14:04:43 +0900 Subject: [PATCH 4/6] rename back_to_henkan to back-to-henkan --- autoload/eskk.vim | 10 +++++----- autoload/eskk/dictionary.vim | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/autoload/eskk.vim b/autoload/eskk.vim index 01f39857..d94bc37a 100644 --- a/autoload/eskk.vim +++ b/autoload/eskk.vim @@ -74,7 +74,7 @@ let s:eskk_mappings = { \ 'phase:henkan-select:choose-prev': {}, \ 'phase:henkan-select:next-page': {}, \ 'phase:henkan-select:prev-page': {}, - \ 'phase:henkan-select:back_to_henkan': {}, + \ 'phase:henkan-select:back-to-henkan': {}, \ 'phase:henkan-select:escape': {}, \ 'phase:henkan-select:delete-from-dict': {}, \ 'mode:hira:toggle-hankata': {'fn': eskk#util#get_local_func('handle_toggle_hankata', s:SID_PREFIX)}, @@ -120,7 +120,7 @@ let s:MODE_LOCAL_KEYS = { \ 'phase:henkan-select:next-page', \ 'phase:henkan-select:prev-page', \ 'phase:henkan-select:escape', - \ 'phase:henkan-select:back_to_henkan', + \ 'phase:henkan-select:back-to-henkan', \ 'mode:hira:toggle-hankata', \ 'mode:hira:ctrl-q-key', \ 'mode:hira:toggle-kata', @@ -143,7 +143,7 @@ let s:MODE_LOCAL_KEYS = { \ 'phase:henkan-select:next-page', \ 'phase:henkan-select:prev-page', \ 'phase:henkan-select:escape', - \ 'phase:henkan-select:back_to_henkan', + \ 'phase:henkan-select:back-to-henkan', \ 'mode:kata:toggle-hankata', \ 'mode:kata:ctrl-q-key', \ 'mode:kata:toggle-kata', @@ -166,7 +166,7 @@ let s:MODE_LOCAL_KEYS = { \ 'phase:henkan-select:next-page', \ 'phase:henkan-select:prev-page', \ 'phase:henkan-select:escape', - \ 'phase:henkan-select:back_to_henkan', + \ 'phase:henkan-select:back-to-henkan', \ 'mode:hankata:toggle-hankata', \ 'mode:hankata:ctrl-q-key', \ 'mode:hankata:toggle-kata', @@ -412,7 +412,7 @@ function! s:asym_filter(stash) abort "{{{ let delete_from_dict = eskk#util#key2char(delete_from_dict) let choose_prev = get(mappings['phase:henkan-select:choose-prev'], 'lhs', '') let choose_prev = eskk#util#key2char(choose_prev) - let back_to_henkan = get(mappings['phase:henkan-select:back_to_henkan'], 'lhs', '') + let back_to_henkan = get(mappings['phase:henkan-select:back-to-henkan'], 'lhs', '') let back_to_henkan = eskk#util#key2char(back_to_henkan) " Convert to real key if sticky_char ==# '' && phase ==# g:eskk#preedit#PHASE_NORMAL diff --git a/autoload/eskk/dictionary.vim b/autoload/eskk/dictionary.vim index a8ec850f..e2e0c693 100644 --- a/autoload/eskk/dictionary.vim +++ b/autoload/eskk/dictionary.vim @@ -412,7 +412,7 @@ function! s:HenkanResult_select_candidate_prompt(skip_num, fallback) abort dict let mappings = eskk#_get_eskk_mappings() let prev_page = get(mappings['phase:henkan-select:prev-page'], 'lhs', '') let prev_page = eskk#util#key2char(prev_page) - let back_to_henkan = get(mappings['phase:henkan-select:back_to_henkan'], 'lhs', '') + let back_to_henkan = get(mappings['phase:henkan-select:back-to-henkan'], 'lhs', '') let back_to_henkan = eskk#util#key2char(back_to_henkan) let escape = get(mappings['phase:henkan-select:escape'], 'lhs', '') let escape = eskk#util#key2char(escape) From b14edf52a6fca3842922072f50eb913a215880a5 Mon Sep 17 00:00:00 2001 From: kyouryuukunn Date: Sun, 10 May 2026 14:06:58 +0900 Subject: [PATCH 5/6] update doc --- doc/eskk.jax | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/doc/eskk.jax b/doc/eskk.jax index efae8a04..2d719565 100644 --- a/doc/eskk.jax +++ b/doc/eskk.jax @@ -749,6 +749,20 @@ A. eskkの補完はpum.vimでは動作しないことに注意してください. +Q. 候補一覧表示時に でキャンセルしたいです。 + +A. +> + EskkUnmap -type=phase:henkan-select:escape + EskkMap -type=phase:henkan-select:escape + +Q. 候補一覧表示時のキャンセルで変換前の状態に戻りたいです。 + +A. +> + EskkUnmap -type=phase:henkan-select:escape + EskkMap -type=phase:henkan-select:back_to_henkan + *eskk-faq-use-azik* Q. AZIKで入力したいです。 A. 以下に設定例を示します。 |g:eskk#use_azik| も参照してください。 From 01bf1d6a82551bfdc649ce6a9e87fc65e00136ba Mon Sep 17 00:00:00 2001 From: kyouryuukunn Date: Sun, 10 May 2026 14:59:38 +0900 Subject: [PATCH 6/6] fix --- autoload/eskk.vim | 6 +++++- autoload/eskk/dictionary.vim | 8 ++++++++ doc/eskk.jax | 9 ++++++++- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/autoload/eskk.vim b/autoload/eskk.vim index d94bc37a..d490dcd0 100644 --- a/autoload/eskk.vim +++ b/autoload/eskk.vim @@ -74,8 +74,9 @@ let s:eskk_mappings = { \ 'phase:henkan-select:choose-prev': {}, \ 'phase:henkan-select:next-page': {}, \ 'phase:henkan-select:prev-page': {}, - \ 'phase:henkan-select:back-to-henkan': {}, \ 'phase:henkan-select:escape': {}, + \ 'phase:henkan-select:clear': {}, + \ 'phase:henkan-select:back-to-henkan': {}, \ 'phase:henkan-select:delete-from-dict': {}, \ 'mode:hira:toggle-hankata': {'fn': eskk#util#get_local_func('handle_toggle_hankata', s:SID_PREFIX)}, \ 'mode:hira:ctrl-q-key': {'fn': eskk#util#get_local_func('handle_ctrl_q_key', s:SID_PREFIX)}, @@ -120,6 +121,7 @@ let s:MODE_LOCAL_KEYS = { \ 'phase:henkan-select:next-page', \ 'phase:henkan-select:prev-page', \ 'phase:henkan-select:escape', + \ 'phase:henkan-select:clear', \ 'phase:henkan-select:back-to-henkan', \ 'mode:hira:toggle-hankata', \ 'mode:hira:ctrl-q-key', @@ -143,6 +145,7 @@ let s:MODE_LOCAL_KEYS = { \ 'phase:henkan-select:next-page', \ 'phase:henkan-select:prev-page', \ 'phase:henkan-select:escape', + \ 'phase:henkan-select:clear', \ 'phase:henkan-select:back-to-henkan', \ 'mode:kata:toggle-hankata', \ 'mode:kata:ctrl-q-key', @@ -166,6 +169,7 @@ let s:MODE_LOCAL_KEYS = { \ 'phase:henkan-select:next-page', \ 'phase:henkan-select:prev-page', \ 'phase:henkan-select:escape', + \ 'phase:henkan-select:clear', \ 'phase:henkan-select:back-to-henkan', \ 'mode:hankata:toggle-hankata', \ 'mode:hankata:ctrl-q-key', diff --git a/autoload/eskk/dictionary.vim b/autoload/eskk/dictionary.vim index e2e0c693..9bd6dc80 100644 --- a/autoload/eskk/dictionary.vim +++ b/autoload/eskk/dictionary.vim @@ -416,6 +416,8 @@ function! s:HenkanResult_select_candidate_prompt(skip_num, fallback) abort dict let back_to_henkan = eskk#util#key2char(back_to_henkan) let escape = get(mappings['phase:henkan-select:escape'], 'lhs', '') let escape = eskk#util#key2char(escape) + let clear = get(mappings['phase:henkan-select:clear'], 'lhs', '') + let clear = eskk#util#key2char(clear) call eskk#util#assert( \ len(words) > a:skip_num, @@ -464,6 +466,12 @@ function! s:HenkanResult_select_candidate_prompt(skip_num, fallback) abort dict let self._candidates_index = -1 call self.preedit.set_henkan_phase(g:eskk#preedit#PHASE_HENKAN) return [self._key, self._okuri] + elseif char ==# clear + let org_preedit = eskk#get_preedit() + call org_preedit.clear_all() + let self._candidates_index = -1 + call org_preedit.set_henkan_phase(g:eskk#preedit#PHASE_NORMAL) + return ['', ''] elseif char ==# ' ' if eskk#util#has_idx(pages, page_index + 1) let page_index += 1 diff --git a/doc/eskk.jax b/doc/eskk.jax index 2d719565..857b6edc 100644 --- a/doc/eskk.jax +++ b/doc/eskk.jax @@ -761,7 +761,14 @@ Q. 候補一覧表示時のキャンセルで変換前の状態に戻りたい A. > EskkUnmap -type=phase:henkan-select:escape - EskkMap -type=phase:henkan-select:back_to_henkan + EskkMap -type=phase:henkan-select:back-to-henkan + +Q. 候補一覧表示時のキャンセルで入力をクリアしたいです。 + +A. +> + EskkUnmap -type=phase:henkan-select:escape + EskkMap -type=phase:henkan-select:clear *eskk-faq-use-azik* Q. AZIKで入力したいです。