im_customはあまりメンテされていないので、skk.vimの方が良いです。
im_custom
vimにSKKを組み込んだもの(註:SKKだけでなく、Canna?またはPOBox?でも使えます)。
現状では、im_customのSKKは、(本物と比べて)結構不完全な出来なので、自分で改良していく気の無い人には、ちょっとオススメしかねるような気がする……。
とは言え、自分は、最早コレが無いとメールもircもページ更新も出来ない。勿論仕事も。
香り屋パッチとはあまり相性が良くない(というか、ただ単に、片方のパッチを当てた後に後続のパッチが当たりにくいだけ)。
.vimrcに、以下のように書いて使う。
if has('im_custom/skk')
set imoptions=skk,dict:~/.skk-jisyo
"set imoptions=skk,dict:~/.skk-jisyo,master:/usr/local/share/skk/SKK-JISYO.L
"set imoptions=skk,serv:127.0.0.1,port:1178
endif
- ユーザ辞書は、無指定の場合は、勝手に~/.skk-jisyoが使われる。
- 現在は、skkserv?との通信はちょっと怪しげっぽい。
- ソースを見たところ、何時の間にか、上の例のように、masterとdictの二つの辞書を指定可能になっていた。
- が、まだexperimentalっぽい気がする…‥。
- 直接辞書を読み込む場合、skkserv?を使う場合よりも、辞書ロードに非常に時間がかかったり、大きくメモリを消費したりするデメリットがある(ちょっとL辞書は使えない)。
- しかし、安定して使える、直前の変換結果を憶えておいてもらえるというメリットがある。
簡易インストールスクリプト
- dbskkd-cdb-1.01 + cdb-0.55 + SKK-JISYO.L.cdb
バグっぽいリスト
バグっぽい挙動とか、未実装っぽい部分とかのリスト(可能なら、暇を見てパッチを書いて送る予定…‥と思ったら、なんか色々直してもらったようです。どうもありがとうございます)
せっかくなので、自分にとって、重要度の高い順にソートしてみる事にした。暇を見て修正する事。
- ^Rによる簡易登録を行おうとすると、segvで死んでしまう場合がある(072で確認)
- どうやら、既に変換エントリがある語に、別の変換を追加する場合にsegvで死んでしまうっぽい
- 辞書マージパッチを当てているなら、簡易登録ではなく、直接:e ~/.skk-jisyoで代用できない事も無いが…‥。
- vimを閉じる時に、別のプロセスによってユーザ辞書が更新された際に、ユーザ辞書をマージして保存する処理が正しく行われていない(074確認)
- まだ実装途中???
- とりあえず、system()で辞書ツールを使ってマージするパッチを書いたものの、コレはちょっと送れないな…‥。
- ^Rによる簡易登録時に、送りがなのある単語を登録できない(072で確認)
- 辞書マージパッチを当てているなら、簡易登録ではなく、直接:e ~/.skk-jisyoで代用できない事も無いが…‥。
- ユーザ辞書に「/ ///・/」のようなエントリを入れても、変換してくれない(多分、半角スラッシュからの変換が出来ない)(072で確認)
- master辞書よりもユーザ辞書(dictで指定する方)から先に候補を出して欲しい(073で確認)
- masterにユーザ辞書を、dictにL辞書とかを指定すれば、一応ユーザ辞書から先に候補が出せるが、そうすると、更新される辞書はユーザ辞書ではなくL辞書とかの方になってしまう…‥
- しかしどうも、単純に逆にすれば良い、というものでもないような気も…‥
- ^Rによる簡易登録後に、変換モードが半角になってしまう(073で確認)
- skkserv?使用時に、^Gで変換を取り消した後や、変換候補が一個も無かった次の回から、通信内容が変になる(前回の変換候補内容が何故か出てきてしまう)(im_custom071で確認)。
- どうも、skkserv?から変換候補一覧を受け取る際に、socketからレスポンスを全部受け取らずにキャンセルしている場合があるのが原因のようだ(その結果、socketのバッファに変換候補内容が残った状態になり、次の変換時にそれが出てきてしまう)。
- コレを、一旦、改行まで全部メモリ上に読み込んでから候補リスト抽出関数に渡すようにすれば直る…‥はず。多分。
- と思ったが、socketのreaderを直接FILE型で候補リスト抽出関数に渡しており、C?で文字列をどうやってFILE型にすればいいのか、自分には分からない(こんな時、Scheme?なら、文字列portで渡せるのに…‥)。
- 仕方が無いので、とりあえず、候補リスト抽出関数から結果を受け取った後に、もしsocketのバッファに何か残っていようといなかろうと、全部読み出してしまうようにしてみた。
- MitTuを「三つ」として変換してくれない(072で確認)
- Chokusetuを入力しようとして、シフトキーのタイミングが悪くて、CHokusetuと入力してしまうと、「チャンネルほくせつ」と変換されてしまう(この例ではL辞書を使用)(skkinputでは、二番目の子音が大文字でも、小文字だと扱ってくれる)(「ch」と「hokusetu」の二つの単語として変換されているっぽい)(072で確認)
- 使用した変換をユーザ辞書かどこかに憶えて、次の変換時にそれを先に出してほしい
- と思ったら、skkserv?使わないモードだと、既に実装されてた…‥。
- つまり、skkserv?使うモードでコレを実装するなら、im_custom側ではなく、skkserv?側に実装すべき、という事か。
- 暇を見て、scskkd?にこの機能が無いかどうか調べて、無いなら、自分で実装してみよう。
- しかし、下手にコレしてしまうと、「.」を押して繰り返したい時に、違う結果が出てしまうのではないか???
- まあ、やってみればわかるか…‥。
- SKKIMEで試してみたところ、使用した変換結果は、ユーザ辞書に保存するようになっていたので、skkserv?から取り出した内容もユーザ辞書に突っ込むようにすればいい、とは思うものの、大変そうだ…‥。
- 辞書登録モードが欲しい
- 確定前に^Rを押せば、簡易登録モードになるので、出来ない訳ではないが…‥
直ったリスト
- 「C」や「S」で入力モードに入った直後に^Jを押しても、かな入力モードにならず、改行が入力されてしまう(二回目以降はちゃんとかな入力モードになる)(072で確認)
- ^Gで変換を取り消した次の変換時、前回変換時の送りがなが残ってしまう場合がある
- 起こる再現手順(im_custom071で確認)
- 「TukaI」で「使い」の候補を出す(確定はしない)
- ^Gを二回押してキャンセル
- 次に大文字の子音を押すと、何故か「い」が残っている
- 「set imoptions=skk,dict:~/.skk-jisyo」のように、~/.skk-jisyoを指定してしまうと、segvで落ちる(im_custom065で確認)。
- 変換を取り消す際の^Gを押した後の挙動がおかしい気がする…‥(次のキー入力が一文字分、勝手に奪われる)(im_custom066で確認)。
- vimでは、iとかaとかで文章を書いた後に、.を押して繰り返しが行えるが、文章中に改行が含まれていると、それが^Jだと解釈されて、勝手に日本語変換が行われてしまう。
- 「ヴ」が入力できない。
- カタカナモードでも漢字変換してほしい(skkinputではやってくれる)
- /からの、英数変換モードの実装が無い
最終更新 : 2006/08/16 22:14:05 JST