libskk の abort-to-latin-uhandled が不完全なせいで英語から変換したときのキャンセルがうまくいっていない (なお実装したのは私)
state.rom_kana_converter.preedit.length > 0 で判定している部分があるのでこれか? 試してみないとわからん
|| abbrev.len > 0 してやらないといけない気がしてきた
合ってた、直っちった……
Fix abort-to-latin-unhandled to properly escape abbrev mode · lo48576/libskk@3aac6f4
https://github.com/lo48576/libskk/commit/3aac6f450b45af1e04a90dfa870312c191fcb416
出先で反応遅れると思うので、とりあえず手元でしばらく使ってみて問題なさそうか確認して帰ってから PR 作ります
どうやら句点モードからの脱出も考慮する必要がある
問題の再現手順:
1. vim で insert mode に入る
2. その状態でかなモードに入る
3. 「k」などで preedit に文字が入っている状態にする
4. その状態で Esc (abort-to-latin-unhandled) でかなモードと insert mode を抜ける
5. vim では normal mode に戻れるが preedit が空にならない ←これを直したい
abort-to-latin-unhandled に限らず、 set-input-mode-latin とかでも同様の問題が発生している。 preedit が残っている状態で mode を切り替えると fcitx5-skk 側での preedit 表示がクリアされない?