新しい機能実装しました
ブログに書くまでもなくそれほど対した変更ではないしさっさと実装してしまえばいいということで実装しました。
テストしてもいいよという方、テストしてください。
うまく動いているようならこのブログのコメント欄にでも書いてくれればmasterにpushします。
インストール
(追記: 肝心のインストール方法を書いてなかったorz)
$ git clone -b hack/variable/skk-enable-hook git://github.com/tyru/skk.vim.git
でcloneしてくるか、すでにgithubのリポジトリをcloneしてきているなら
$ git checkout -t -b new-feature hack/variable/skk-enable-hook
でブランチを持ってこれます。
new-featureの部分は自由な名前で結構です。
設定例
以下の例では
- C-j C-eをskkをonにして、
- C-j C-d
というような設定にしています。
" Do not map `<Plug>(skk-toggle-im)`. let skk_control_j_key = '' " `<C-j><C-e>` to enable, `<C-j><C-d>` to disable. map! <C-j><C-e> <Plug>(skk-enable-im) map! <C-j><C-d> <Nop> function! MySkkMap() lunmap <buffer> <C-j> lmap <buffer> <C-j><C-d> <Plug>(skk-disable-im) endfunction let skk_enable_hook = 'MySkkMap'
g:skk_enable_hook 説明
今まではC-jがskkの関数によって処理されていたために、
skkがoffになる、つまりトグルするような挙動になっていました。
そこでskkがonになりマッピングがセットアップされた後に呼び出す関数を指定するのが今回実装したg:skk_enable_hookです。
この関数内で「lunmap
autocmdを使おうかと思いましたがskk.vimに新たな機能追加を予定 - Humanityでも言ったような互換性の制限をしいているために使わないようにしています。
skk.vimでもautocmdやaugroupは使われていますがUserイベントが存在するか確認できませんでした。
TODO
- ドキュメント