vim-skk/eskk.vim

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

kuuote opened this issue · 5 comments

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

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

tyru commented

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

tyru commented

最新版 (87e9856) にして以下のパッチを当てて動作確認してもらっていいでしょうか。
自分の環境 (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

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

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

tyru commented

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