vim6.X Canna + SKK + POBox パッチ まっつん □はじめに vim は、 Bram Moolenaar 氏による vi クローンです。 オリジナルは多バイト文字に対応しましたが、文字入力においては XIM やシェルラッ パを使用しないと入力できません。よって本パッチにて内部に入力メソッドを組み込 みます。なお、本パッチにより生じた障害等は保証しかねます。 vim6 のソース管理が ftp から cvs に変更されましたので、cvs の最新バージョン を取得してパッチを作成しています。 検証は、Linux の Fedora Core 2、enc=utf-8 で行っています。 □ないよう 本パッチにより以下の機能が働きます。 ○Canna を使用した漢字入力 環境変数 CANNAHOST で指定したホストを Canna サーバとして使用し、漢字入力を 行います。 ○SKK を使用した漢字入力 ホームディレクトリ下の .skk-jisyo 、もしくはサーバを使用し、漢字入力を行 います。 ○POBox を使用した漢字入力 POBox サーバを使用し、漢字入力を行います。 □つくりかた オフィシャルからソースファイルし、以下のように実行します。 バージョン 060 未満と 061 以降で適応方法が異なります。 --- im_custom060 未満 --- # cd vim61 # zcat im_custom???.diff.gz | patch -p0 # make このパッチは既に configure されたソース上から当てます。 --- im_custom061 以降 --- # cd vim61 # zcat im_custom???.diff.gz | patch -p0 # ./configure \ --prefix=/usr \ --enable-multibyte \ --enable-canna \ --enable-skk \ --enable-pobox 関連するのは --enable-canna, --enable-skk, --enable-pobox です。 必要に応じてオプションを変更してください。 ※ファイル名には、お持ちのパッチのファイル名を使用してください。 ※本パッチは Windows でも動作します。(canna 以外) 本パッチでは Microsoft Visual C++ Borland C++ Compiler 5.5 UNIX 用の Makefile(UNIX にはconfigure)が用意されています。 その他の環境でコンパイルされたい方は以下の作業を行ってください。 コンパイルオプションに -DFEAT_IM_CUSTOM とご使用になるインプットメソッド にあわせて・・・ -DFEAT_CANNA -DFEAT_SKK -DFEAT_POBOX を付加してください。 次にコンパイルされるソース一覧に、必要となるソース canna.c, skk.c, pobox.c を付加してください。またプロトタイプ一覧についても canna.pro, skk.pro, skk.pro を付加してください。 最後に Canna をご使用の場合に限ってライブラリに Canna のライブラリを付加して ください。 □つかいかた ○Canna を使用した漢字入力 vim から :set imoptions=canna と入力し、 を押下します。 (環境により かもしれません) 入力方法は下記リンクを参照 Canna では以下の付加オプションが設定可能です。 ・serv : 辞書サーバ set imoptions=canna,serv:localhost ○SKK を使用した漢字入力 vimから :set imoptions=skk と入力し、 インサートモードにて を押下します。 入力方法は下記リンクを参照 SKK では以下の付加オプションが設定可能です。 ・dict : 辞書ファイル set imoptions=skk,dict:~/.skk-jisyo ・master : マスタ辞書ファイル set imoptions=skk,master:/usr/share/skk/SKK-JISYO.L ・serv : 辞書サーバ set imoptions=skk,serv:localhost ○POBox を使用した漢字入力 vimから :set imoptions=pobox と入力し、 を押下します。 入力方法は下記リンクを参照 POBox では以下の付加オプションが設定可能です。 ・serv : 辞書サーバ set imoptions=pobox,serv:localhost ・port : 辞書サーバポート set imoptions=pobox,serv:localhost,port:1178 ・key : 変換開始キー set imoptions=pobox,serv:localhost,key:28 □りれき 2005/02/09 : 075リリース skk 辞書登録部を大幅に作り変え。 6.3.060 に対応。 半年振りか・・・。 {{{ 2004/06/15 : 074リリース skk にて仮入力していない状態で Ctrl_G を押しても ファイルの状態が表示されない問題を修正。 2004/06/08 : 073リリース skk にて S コマンドからモード突入すると、 一回分 Ctrl_J が食われる問題を修正。 KeyStuffed を getchar.c にてチェックしてしまったのが 問題(071より)でした。 patch に config.h を入れており、rpm 作成スクリプト が通らなかったので patch から削除。 2004/06/03 : 072リリース skk にて変換候補が内状態から Ctrl_G を押下すると、 次回入力時に送りがなが残ってしまう問題を修正。 2004/05/27 : 071リリース skk にて改行を含む編集をした後、skk モードにて redo すると Ctrl_J と勘違いして漢字モード突入、その結果へんな redo の 結果になってしまう問題を修正。 2004/05/26 : 070リリース Ctrl_G で文字が食われる問題を修正。 バグをウェブ上に報告して方がいたので謝辞を追加。 2004/05/26 : 069リリース skk の va vi vu ve vo のエントリを追加。 カタカナモードでも変換できるよう修正。 (ひらがなの場合 "う゛" にするかどうかはまだ未定) 2004/05/25 : 068リリース skk の送り仮名あり選択 selectCand が落ちる問題を修正。 2004/05/24 : 067リリース skk の / 入力に対応。 2004/04/14 : 066リリース skk にてソケットが一つずつ増えていくという報告を受け修正。 skk モード on 時は毎回オープン/クローズしないよう修正。 Make_bc5.mak の !endif が1個多かったのを修正。 2004/02/23 : 065リリース skk.c にて ExpandInit が呼び出されていなかったのを修正。 Borland C++ Compiler 用 Makefile を用意。 Make_mvc.mak にて IMC 引数が使えるよう修正。 Make_bc5.mak にて IMC 引数が使えるよう修正。 6.2.263 に対応。 :version にて +imcustom となっていたのを +im_custom と修正。 2003/10/30 : readme.txt 修正 skk のトリガキーが C-\ となっていたので修正。 2003/07/14 : 064リリース --without-x --disable-gui でビルドできない問題を修正。 2003/06/30 : 063リリース とりあえず 6.2.014 に対応。 2003/03/31 : 062リリース とりあえず 6.1.423 に対応。 2002/11/01 : 061リリース configure のパッチが付きました。 SKK にて... ユーザ辞書がない場合、終了時に落ちる問題を修正。 win32 の警告削除。 サーバが複数起動してしまう問題を修正 2002/10/30 : 060リリース SKK にて... 一度ユーザ辞書で見つかると以後、サーバへ問い合わせない 問題を修正。 2002/10/30 : 059リリース has("im_custom") に対応。 ビルドオプションにより has("im_custom/canna") has("im_custom/skk") has("im_custom/pobox") が取得可能になった。 SKK にて... [かな]、[カナ]、[全英]の時にスペース挿入と記号の入力が がおかしかったのを修正。 [かな]の時に q を押下した後でモード表示が更新されて いなかったのを修正。 2002/10/29 : 058リリース ui.c に xic の既述があった為、 --disable-xim でコンパイル 出来なくなっていたのを修正。 2002/10/11 : 057リリース SKK にて... 送り仮名の処理で SEGV するバグを修正。その2 だんだん quickhack のしわよせが現れ始める。(^_^;) 2002/10/10 : 056リリース SKK にて... 送り仮名の処理で SEGV するバグを修正。 2002/10/10 : 055リリース SKK にて... ローマ字エントリ、バックスペース時の処理等を修正。 2002/10/10 : 054リリース Canna にて ESCを押してから、再び入力モードに入った場合、 alpha-mode に戻ってしまう、という不具合を修正。 2002/10/03 の skk.c を取り入れ。 2002/10/03 : skk.c を一時的にリリース 候補が空の時、Ctrl_G を vim に流すよう修正。 Win32 にて動作がおかしかったのを修正。 2002/09/06 : 053リリース SKK にて... 「関して」が入力出来ない問題を修正。 2002/09/02 : 052リリース パッチ171用にリメイク。 SKK にて... 全角アルファベット入力で「,.」が入力できるよう修正。 2002/08/30 : 051リリース SKK にて... portを指定できるよう変更。 2002/07/24 : 050リリース showmode, getchar に関してAIDAさんのロジックを頂く。 Canna にて... AIDAさんのロジックを頂く。 screen.c のパッチマージによりリメイク。 2002/06/24 : 049リリース SKK にて... 全角英数モードで記号が入力出来るよう修正。 2002/06/14 : 048リリース SKK にて... 細かなバグ修正。 2002/06/14 : 047リリース Canna にて... just.canna や skk.canna では自らモードが作れてしまうため、 ESC にて挿入モードを抜けてしまうと問題があった。 SKK にて... 挿入モードを SKK の半角英数モードで実装するよう変更。 「じゃ」のテーブルが無かった 「はいった」とか「なかった」が入力出来なかったのを修正。 ※ SKK の挿入モードについて考え直す必要がある。 2002/06/14 : 046リリース SKK にて... バックスペースで遲り仮名を消し忘れ。 2002/06/14 : 045リリース SKK の変換ロジック全面見直し。 2002/06/14 : 044リリース SKK にて... デバッグプリントが残っていたのを修正。 「NokoTteita」が「残っていた」に変換出来ないのを修正。 ※だいぶ SKK の動きに近くなってきた。 2002/06/13 : 043リリース バックスペースの動きがおかしかったのを修正。 その他、全体的に修正。 2002/06/13 : 042リリース SKK にて... 辞書を遅延ロードするよう変更。 2002/06/12 : 041リリース SKK にて... 登録後の最初の1もじが有効にならないバグを修正。 2002/06/12 : 040リリース 039のフィックス SKK にて... 「fafifufefo」で「ふぁふぃふふぇふぉ」となるよう変更。 2002/06/12 : 039リリース SKK にて... 変換中の Ctrl-G で候補/仮入力/消去となるよう変更。 変換中の x で候補を逆送りするよう変更。 2002/06/11 : 038リリース SKK にて... Ctrl-G で仮入力をキャンセル出来るように修正。 「っ」の処理を全面的に見直し。 「送る言葉」を「▽Okuru Kotoba」でも出せるように変更。 2002/04/23 : 037リリース SKK にて... 「送る言葉」を「▽OkuRuKotoba」で出せるように変更。 2002/04/23 : 036リリース SKK にて... emacsの動作を若干まねる。 2002/04/22 : 035リリース SKK にて... wskkserv(Win32)ではリザルトコードが4の場合、続く改行も返さ ないのでハングする問題で、実は 0x00 のみ返す罠を修正。 2002/04/22 : 034リリース Win32にて登録語の文字化け修正 2002/04/19 : 033リリース iminsertにて開始しないバグを修正。 でも終了しない...。 2002/04/19 : 032リリース 変換ロジックを大幅見直し。 AIDAさんのロジックを頂く。 これにより"▽OkonaU"等がハングする問題が解決。 2002/04/18 : 031リリース SKK にて... wskkserv(Win32)ではリザルトコードが4の場合、続く改行も返さ ないのでハングする問題を修正。 変換開始キーを追加。 Canna にて... (setq bunsetu-kugiri nil) が有効にならないので、とりあえず jrKanjiControl(0, KC_SETBUNSETSUKUGIRI, (char*) &ksv); の処理をコメントアウト。 set noshowmode の場合、[あ]などモード行が表示されたままなの を暫定的に修正。 2002/04/17 : 030リリース T_MEによる回避策はやはりまずい気がしてきたので AIDAさんにならってscreen.cを修正。 Canna にて... 未入力中にカーソルやバックスペースが効くように修正。 2002/04/17 : 029リリース 変換後のキー入力で候補を確定するようにした。 2002/04/17 : 028リリース SKK にて... 動作をIMEスタイルに戻す。 登録については中々の動作。 2002/04/16 : 027リリース SKK にて... 新規追加した単語をさっそくつかうと落ちる問題を修正。 2002/04/16 : 026リリース AIDA Shinra さんの skk.c をごっそり貰う。 感謝 : AIDA Shinra さん m(_ _)m。 2002/04/16 : 025リリース 良かれと思って入れた no_mapping の処理だったが、 不調なため削除...。 2002/04/16 : 024リリース SKK にて... あ行の送り仮名処理がおかしかったのを修正...。 が治っていなかったのを修正。 2002/04/16 : 023リリース SKK にて... あ行の送り仮名処理がおかしかったのを修正。 2002/04/16 : 022リリース ワーニングなどもろもろ修正。 021には tags ファイルが引っ付いてました m(_ _)m。 アナウンス方法を考える必要あり...。 2002/04/12 : 021リリース SKK にて確定時の候補が消えてしまうバグを修正。 2002/04/11 : 020リリース Canna,SKK にてモードの位置がおかしいのを修正。 2002/04/11 : 019リリース SKK にて"あ行"の送り仮名処理がおかしいのを修正。 2002/04/08 : 018リリース SKK にてバックスペースを1文字削除へ変更。 (1日に3つもリリースしてていいのか?) 2002/04/08 : 017リリース POBox にて候補選択なしに決定を行うとサーバへ以上な候補(-1) を送信してしまうバグを修正。 2002/04/08 : 016リリース 015リリースミス...。 2002/04/05 : 015リリース vim6.1用にリメイク。 SKKの登録時にカーソルが最下部にないのを修正。 2002/02/18 : 014リリース POBox にてフォーマットが SKK ならば SKK っぽく動作するよう に修正。 2002/02/18 : 013リリース Canna で F1 を押下すると落ちるバグ修正。 2002/02/15 : 012リリース SKK と POBox は同じポートを使用するため、フォーマットの 違いから無限ループに落ち入っていた問題を解決。 POBox の Win32 対応。 2002/02/15 : 履歴を付けだす。 }}} □さんこう Canna: http://www.nec.co.jp/canna/ SKK: http://openlab.ring.gr.jp/skk/index-j.html POBox: http://www.csl.sony.co.jp/person/masui/OpenPOBox/ □はいふ GPL に従います。 vim 本体は http://www.vim.org/ からダウンロードして下さい。 Debian 等でパッケージを作成する場合、win32 関連のファイルにパッチが当らない ように本ファイルから削り取って下さい。 □ざんかだい ・サーバオプション --servername を使用すると、im が連動してしまうらしい。 ・SKK にてバックスペースやカーソルによるインライン編集 (登録部はほぼ完了) ・他の変換サーバへの対応 ・SKK にて ~/.skk を読めるような機能を追加 lisp エンジンを積むか、独自の設定ファイルを持つ必要あり。 □しゃじ 以下の方に謝辞を送ります。 AIDA Shinra さん canna, skk に関して多くのヒントをいただきました。 寺田 学 さん configure.in をいただきました。 山田 淳雄 さん skk にてソケット増加を回避するパッチをいただきました。 d - 堆積蔵 さん(?) http://d.tir.jp/pw?im_custom&l=jp その他 2ch Vim6 スレの皆さん □こめんと どなたでも手伝っていただけると非常にありがたいです。 vim:set ts=8 sts=2 sw=2 tw=78 et fdm=marker: