vim-skk / eskk.vim

eskk is pure Vim script implementation of input method engine SKK
174 stars 28 forks source link

辞書登録時に▼モードのまま確定するとVimを再起動するまで反映されない #218

Closed kuuote closed 4 years ago

kuuote commented 4 years ago

辞書登録時に▼モードのまま確定するとVimを再起動するまで反映されない

辞書登録モード時、候補を入力して確定する時▼モードのままEnterキーを押すと、候補は登録されているはずなのに、再度同じ文節を入力しても登録した候補が現れない浮いた状態になります。 この状態でVimを再起動すると候補が現れるようになります。 また、 <C-j> で確定するなり、何か入力して消すなりして■モードに戻した上で確定するとちゃんと登録ができますが、浮いた候補がある状態でこれを行うと、浮いている分が全て消失します。

tyru commented 4 years ago

おそらくタイミング依存のようで、 候補を入力して確定する時「<C-j> で確定した場合」でも「▼モードのままEnterキーを押した場合」と同様に候補が現れない状態になることもありました。 ちなみに OS や eskk の設定があれば教えてもらえますでしょうか。

tyru commented 4 years ago

最新版 (87e985638ae4251eacf17931d25b8c23d7b36ae9) にして以下のパッチを当てて動作確認してもらっていいでしょうか。 自分の環境 (macOS 10.15.2, Vim 8.2.96) では「<C-j> で確定した場合」でも「▼モードのままEnterキーを押した場合」でも登録した候補が現れるようになりました。

diff --git a/autoload/eskk/dictionary.vim b/autoload/eskk/dictionary.vim
index 087bbaf..3c59547 100644
--- a/autoload/eskk/dictionary.vim
+++ b/autoload/eskk/dictionary.vim
@@ -1555,6 +1555,7 @@ function! s:Dictionary_update_dictionary(...) abort dict "{{{
     call self.forget_all_words()
     call self._user_dict.clear_modified_flags()
     " Load changed lines.
+    sleep 1
     call self._user_dict.update_lines()
 endfunction "}}}
 function! s:Dictionary_write_lines(lines, verbose) abort dict "{{{
tyru commented 4 years ago

すみません、修正ブランチを作ったのでやはりこちらを試してみてください。 #220

kuuote commented 4 years ago

Archlinux上のVim8.2.110上で #220 を試した所直っているのが確認できました。 よろしくお願いします。

tyru commented 4 years ago

ありがとうございました。