vim-skk / eskk.vim

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

C-g でキャンセル扱いにならない #127

Closed mattn closed 12 years ago

mattn commented 12 years ago

仮入力がある場合は消え、候補選択中であればキャンセルされ、というのがオリジナルの動作です。 バックスペースに似てるのでそれを流用すれば良いかと。

thinca commented 12 years ago

挿入モードの <C-g> はデフォルトで複数の機能のプレフィックスとして割り当てられているので、このキーを使うとキーマッピング確定待ちが発生してしまいます。 Vim でこのキーを使うのは現実的ではないかと思います。

mattn commented 12 years ago

んー。だんだんeskkを使うメリットはなくなってきたw

mattn commented 12 years ago

ちなみにそれってmapじゃないので確定待ちにならない気がする

thinca commented 12 years ago

試して見ましたが、確定待ちになります。 なる上に、<C-g>の時点で展開されてしまうので、<C-g>u などの入力が不可能になります。

tyru commented 12 years ago

対応しました。 06c82376d2379ec9b4fe23d1813d4e7eebd36582

んー。だんだんeskkを使うメリットはなくなってきたw

@mattn これはどういう意味です?

試して見ましたが、確定待ちになります。 なる上に、の時点で展開されてしまうので、u などの入力が不可能になります。

ふむ。どうしましょう。やっぱ他のキーに割り当てた方がいいですかね。

mattn commented 12 years ago

僕の環境だと入力待ちにならないんですよね。inoremap <c-g>No mapping found なので。

mattn commented 12 years ago

@mattn これはどういう意味です?

<C-g> の使えないskkはなー...という意味です。

tyru commented 12 years ago

<C-g>uとかありますよね。そういうのはどうしてます? それともset notimeoutしてるとか? 自分はこの件に関してはユーザで自由にマッピングできるのがいいと考えてます。

mattn commented 12 years ago

僕の環境だと入力待ちにならないんですよね。inoremap は No mapping found なので。

と書いた通り僕は基本何も弄らないです。 <c-g>u なんかはマップじゃないので、vimのソース的には<c-g>で入力待ちにはならないと思うんだけどなー。こういうのはコードで no_mapping++ みたいなのしてるはず。かなモード抜けて <c-g> のマップが解けるなら問題無いと思うんだけど。

thinca commented 12 years ago

試して見ましたが、確定待ちになります。

すいません。これ改めて確認したところ、私の設定のせいでした。もうしわけない。 ただ、<C-g>u 等が効かなくなるのは確かです。lmap 中だけなら問題はないかもしれませんが。

tyru commented 12 years ago

あー本当ですね... <C-g>に続くマッピング全て消したら<C-g>が即時実行されました。 <C-g>に続くマッピングはなくて<C-g>のマッピングのみある場合、組み込みの<C-g>uみたいなマッピングは入力できないんですね。

tyru commented 12 years ago

thincaさんとかぶった

mattn commented 12 years ago

KeyTypedを判別してるはずなので、feedkeys("<c-g>u>", "n")的な事やinoremapのrhsで送出しているのであればいけるかと。

tyru commented 12 years ago

対処したのでとりあえずクローズしときます。