Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions autoload/eskk.vim
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@ let s:eskk_mappings = {
\ 'phase:henkan-select:next-page': {},
\ 'phase:henkan-select:prev-page': {},
\ '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)},
Expand Down Expand Up @@ -119,6 +121,8 @@ 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',
\ 'mode:hira:toggle-kata',
Expand All @@ -141,6 +145,8 @@ 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',
\ 'mode:kata:toggle-kata',
Expand All @@ -163,6 +169,8 @@ 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',
\ 'mode:hankata:toggle-kata',
Expand Down Expand Up @@ -408,6 +416,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 ==# '<Space>' && phase ==# g:eskk#preedit#PHASE_NORMAL
let sticky_char = "\<Space>"
Expand Down Expand Up @@ -455,6 +465,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
Expand Down
18 changes: 17 additions & 1 deletion autoload/eskk/dictionary.vim
Original file line number Diff line number Diff line change
Expand Up @@ -412,6 +412,12 @@ 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)
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,
Expand Down Expand Up @@ -454,8 +460,18 @@ function! s:HenkanResult_select_candidate_prompt(skip_num, fallback) abort dict
endtry


if char ==# "\<C-g>"
if char ==# escape
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 ==# 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
Expand Down
21 changes: 21 additions & 0 deletions doc/eskk.jax
Original file line number Diff line number Diff line change
Expand Up @@ -749,6 +749,27 @@ A.

eskkの補完はpum.vimでは動作しないことに注意してください.

Q. 候補一覧表示時に <ESC> でキャンセルしたいです。

A.
>
EskkUnmap -type=phase:henkan-select:escape <C-g>
EskkMap -type=phase:henkan-select:escape <ESC>

Q. 候補一覧表示時のキャンセルで変換前の状態に戻りたいです。

A.
>
EskkUnmap -type=phase:henkan-select:escape <C-g>
EskkMap -type=phase:henkan-select:back-to-henkan <C-g>

Q. 候補一覧表示時のキャンセルで入力をクリアしたいです。

A.
>
EskkUnmap -type=phase:henkan-select:escape <C-g>
EskkMap -type=phase:henkan-select:clear <C-g>

*eskk-faq-use-azik*
Q. AZIKで入力したいです。
A. 以下に設定例を示します。 |g:eskk#use_azik| も参照してください。
Expand Down
Loading