vim-skk / eskk.vim

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

「ん あ」等を入力しようとすると間のスペースが消える #238

Closed kuuote closed 4 years ago

kuuote commented 4 years ago

現象

未確定のローマ字が存在する状態でスペースを入力し、その後に文字を入力したり挿入モードを抜けたりするとスペースが削除されます。

再現手順

eskk.vimを有効化した状態でn aと入力すると、最後のaを入力した時点でnの後に打ったスペースが削除され「んあ」と入力されます

構成

Vim 8.2.1603 eskk.vim https://github.com/tyru/eskk.vim/commit/1db7aceb2faf48b791bb4dbb31a34940e1967afe

Shougo commented 4 years ago

Slack に記述している調査結果も issue に書き出してください。

kuuote commented 4 years ago

すみません。 中途半端にローマ字が入力された状態でマッチしない物(今回はスペース)が入力されると、autoload/eskk.vims:filter_rom_no_matchが呼ばれますが、本来であれば https://github.com/tyru/eskk.vim/blob/1db7aceb2faf48b791bb4dbb31a34940e1967afe/autoload/eskk.vim#L1160 に到達するべき所ができていないのが原因だと思われます。

kuuote commented 4 years ago

~いや、違うか、その下の部分でスペース等を判定する必要がありそうですね~ map isnot NO_MAPの行で何を打っても必ず次のローマ字扱いになり、次にhandle \char``が呼ばれた時に削除されてしまうのが原因のようです

kuuote commented 4 years ago

とりあえずmsimeの分岐内の処理をhandle \char`の後のif map isnot NO_MAP`の直後にコピーしたら望んだ挙動をするようですが、これで正しいのかは分からないです。