*Migemoとは [#yeba82f6] Migemoとはローマ字のまま日本語を検索できるようにするツールで、 日本語検索の際にいちいち漢字変換する必要が無く、簡単に検索できます。とても便利。 *link [#c4c84885] -[[Migemo: ローマ字のまま日本語をインクリメンタル検索 :http://namazu.org/~satoru/migemo/]] 公式 -[[C/Migemo:http://www.kaoriya.net/#CMIGEMO]] MigemoをCで記述したもので、若干容易に使用できます。 -[[インクリメンタルサーチと置換:http://www.bookshelf.jp/soft/meadow_49.html]] -[[migemo:http://pess.no-ip.org/slack/migemo]] *インストール [#wbc9d7e8] 公式ページの説明に従えば良いですが、一般ユーザ権限しか無い場合、.rbファイルは自分のHOMEに放り込むしかありません。そんな時は環境変数 RUBYLIB として適宜自分の置き場所を指定してやる必要があります。 *Meadowで使用 [#dd16f309] 基本的にはEmacs上で使用するものです。必要なもの等は上記の公式ページから知ることができます。 残念なことにWindows上のMeadowで使用するには若干の作業が必要となります。 私の環境では、[[こちらの「migemo」というページ:http://www4.kcn.ne.jp/~boochang/emacs/migemo.html]]を参考にして以下のようにしたら動作しました。 **前準備 [#q4540746] -[[Cygwin:http://www.cygwin.com/]]をインストールします。開発環境や[[ruby:http://www.ruby-lang.org/ja/]]を入れるためです。一度cygwinなしでのビルドを試みたのですが、改行コードやらの事情が面倒で難しそうなので挫折しました('06 11/20)。後に[[Meadow:http://www.meadowy.org/meadow/wiki/]]を、[[APEL:http://cvs.m17n.org/elisp/APEL/]] と一緒にインストールしてしまいます(パッケージがあるようです)。 そして、心臓部となる[[Migemo:http://namazu.org/~satoru/migemo/]]、[[SKK-JISYO.L:http://www.maid.ne.jp/~toru/skk-dic/dic_orig/SKK-JISYO.L.gz]]、[[Ruby/Romkan:http://namazu.org/~satoru/ruby-romkan/]]、[[Ruby/Bsearch:http://namazu.org/~satoru/ruby-bsearch/]]を入手し、展開します。 **RomkanとBsearch [#o8fc83e4] 先の解凍によって、romkan.rb と bsearch.rb を得ます。これらを /usr/lib/ruby/site_ruby にコピーします。ディレクトリがなかったら作成しておきます。 **コンパイル [#xb733164] Migemoを解凍したディレクトリに移り以下のようにします(ファイルパスは適宜変更して下さい)。 その際、入手した SKK-JISYO.L をそのディレクトリに忘れずに入れておくようにします。 $ ./configure --with-emacs=/cygdrive/f/meadow/meadow2/2.00b2/bin/Meadow.exe \ --with-lispdir=/cygdrive/f/meadow/meadow2/2.00b2/site-lisp $ make $ make install そして、migemo 実行ファイルの記述を少し修正します。/usr/local/bin/migemoの先頭行を、 #!/usr/bin/ruby と書換えます。 **.emacs [#bf84e794] Meadowの.emacsに以下の記述を加えます。 (setq migemo-directory "f:/cygwin/usr/local/share/migemo") (load "migemo") こちらも環境に応じて変更して下さい。 *NTEmacsでC/Migemoを使用 [#l423e1b6] 別にMeadowと対比するわけではないのですが、セットアップ内容をメモします。内容は基本的に[[C/migemo を使いたい:http://www.bookshelf.jp/soft/meadow_49.html#SEC702]]の写しです。 別にMeadowと対比するわけではないのですが、セットアップ内容をメモします。内容は基本的に[[C/migemo を使いたい:http://www.bookshelf.jp/soft/meadow_49.html#SEC702]]の写しです。手元のMeadow3とNTEmacs 21.3.1で問題無く動いているようです。 **出来合のバイナリを頂く [#kab88747] **入手 [#b5c685dc] どちらでもよいが、自分でコンパイルした方がバージョンも後だし、最適化も効くのでよいかも? ****出来合のバイナリを頂く [#kab88747] -[[C/migemo を使いたい:http://www.bookshelf.jp/soft/meadow_49.html#SEC702]]からコンパイル済みバイナリを入手(cmigemo-1.1.013.lzh) -dictディレクトリの中身の漢字コードはEUCだが、これをShift-JISに変換する。なぜかは(私のスキル不足により)わからないが、EUCのままだと私の環境ではemacs経由のcmigemoの挙動がおかしかった。 **自分でコンパイルする [#d70645b8] ***自分でコンパイルする [#d70645b8] -[[C/migemo:http://www.kaoriya.net/#CMIGEMO]]と[[Migemo: ローマ字のまま日本語をインクリメンタル検索:http://0xcc.net/migemo/]]からソースを頂いてくる。私は cmigemo-1.2.tar.bz2 と migemo-0.40.tar.gz を頂いてきた。 -migemoを展開し、migemo.el.in 中(50行目だった) (defvar migemo-directory "@pkgdatadir@" の "@pkgdatadir@" を適当に "/usr/local/share/migemo" とかにしておく。(雰囲気的に。後の.emacsの設定により、この値は意味を失う) -cmigemoを展開し、 の "@pkgdatadir@" を適当に "/usr/local/share/migemo" とかにしておく。(雰囲気的に。後の.emacsの設定により、この値は意味を失う)で、migemo.elに改名する。 -cmigemoを展開し、compile/Make_mvc 中の最適化オプションを /G6 (Pen IIIまで) から /G7 (Pen4 以降) に変える(お好み)。config.mk中のHTTPをwgetにする。そして nmake msvc nmake msvc-dict としてビルド。実行ファイルも辞書も出来上がる。私の環境はMSVC++ .NET 2003 **ファイルの配置と設定 [#je7f4c56] -cmigemo.exeとmigemo.dllをemacs本体と同じディレクトリにコピー(パスが通っている別の場所でもOK)。 -migemo.elをsite-lispにコピー(load-pathの通ってる別の場所でもOK)。 -dictディレクトリの中身の漢字コードはEUCだが、これをShift-JISに変換する。なぜかは(私のスキル不足により)わからないが、EUCのままだと私の環境ではemacs経由のcmigemoの挙動がおかしかった。で、ディレクトリごとsite-lispにコピー(どこでも良い。場所は.emacsで指定する) -site-lispにdictディレクトリを作製し、 --han2zen.dat --hira2kata.dat --migemo-dict --roma2hira.dat を放り込む。漢字コードはSJIS -.emacsに下記を加える。この記述は99%[[C/migemo を使いたい:http://www.bookshelf.jp/soft/meadow_49.html#SEC702]]と同じです。 ;; 基本設定 (setq migemo-command "cmigemo") (setq migemo-options '("-q" "--emacs")) ;; migemo-dict のパスを指定 (setq migemo-dictionary "C:/programs/emacs-21.3/site-lisp/dict/migemo-dict") (setq migemo-user-dictionary nil) (setq migemo-regex-dictionary nil) ;; キャッシュ機能を利用する (setq migemo-use-pattern-alist t) (setq migemo-use-frequent-pattern-alist t) (setq migemo-pattern-alist-length 1024) ;; 辞書の文字コードを指定. (setq migemo-coding-system 'japanese-shift-jis-unix) ;;; <= EUCではない (load-library "migemo") ;; 起動時に初期化も行う (migemo-init) Meadow3についても同様にすればうまく使えているようでした。 *NTEmacsでC/Migemoを使用 [#l423e1b6] 別にMeadowと対比するわけではないのですが、セットアップ内容をメモします。最初にこのメモを記したのは'05のころだったと思うのですが、'06 11/20 に、どうも検索結果がおかしいぞということで調べてみたら、辞書の文字コードが結構大事なパラメータであることに気付きました。 -[[C/migemo を使いたい:http://www.bookshelf.jp/soft/meadow_49.html#SEC702]]にC/Migemoのコンパイル済みバイナリがあるのでそれを入手(cmigemo-1.1.013.lzh) -cmigemo.exeとmigemo.dllをemacs本体と同じディレクトリにコピー(パスが通っている別の場所でもOK)。 -migemo.elをsite-lispにコピー(load-pathの通ってる別の場所でもOK)。 -dictディレクトリの中身の漢字コードはEUCだが、これをShift-JISに変換する。なぜかは(私のスキル不足により)わからないが、EUCのままだと私の環境ではemacs経由のcmigemoの挙動がおかしかった。で、ディレクトリごとsite-lispにコピー(どこでも良い。場所は.emacsで指定する) -.emacsに下記を加える。この記述は99%[[C/migemo を使いたい:http://www.bookshelf.jp/soft/meadow_49.html#SEC702]]と同じです。 ;; 基本設定 (setq migemo-command "cmigemo") (setq migemo-options '("-q" "--emacs")) ;; migemo-dict のパスを指定 (setq migemo-dictionary "C:/programs/emacs-21.3/site-lisp/dict/migemo-dict") (setq migemo-user-dictionary nil) (setq migemo-regex-dictionary nil) ;; キャッシュ機能を利用する (setq migemo-use-pattern-alist t) (setq migemo-use-frequent-pattern-alist t) (setq migemo-pattern-alist-length 1024) ;; 辞書の文字コードを指定. (setq migemo-coding-system 'japanese-shift-jis-unix) ;;; <= EUCではない (load-library "migemo") ;; 起動時に初期化も行う (migemo-init) Meadow3についても同様にすればうまく使えているようでした。 //*NTEmacsでC/Migemoを使用 [#l423e1b6] //別にMeadowと対比するわけではないのですが、セットアップ内容をメモします。最初にこのメモを記したのは'05のころだったと思うのですが、'06 11/20 に、どうも検索結果がおかしいぞということで調べてみたら、辞書の文字コードが結構大事なパラメータであることに気付きました。 // //-[[C/migemo を使いたい:http://www.bookshelf.jp/soft/meadow_49.html#SEC702]]にC/Migemoのコンパイル済みバイナリがあるのでそれを入手(cmigemo-1.1.013.lzh) //-cmigemo.exeとmigemo.dllをemacs本体と同じディレクトリにコピー(パスが通っている別の場所でもOK)。 //-migemo.elをsite-lispにコピー(load-pathの通ってる別の場所でもOK)。 //-dictディレクトリの中身の漢字コードはEUCだが、これをShift-JISに変換する。なぜかは(私のスキル不足により)わからないが、EUCのままだと私の環境ではemacs経由のcmigemoの挙動がおかしかった。で、ディレクトリごとsite-lispにコピー(どこでも良い。場所は.emacsで指定する) //-.emacsに下記を加える。この記述は99%[[C/migemo を使いたい:http://www.bookshelf.jp/soft/meadow_49.html#SEC702]]と同じです。 // // ;; 基本設定 // (setq migemo-command "cmigemo") // (setq migemo-options '("-q" "--emacs")) // ;; migemo-dict のパスを指定 // (setq migemo-dictionary "C:/programs/emacs-21.3/site-lisp/dict/migemo-dict") // (setq migemo-user-dictionary nil) // (setq migemo-regex-dictionary nil) // // ;; キャッシュ機能を利用する // (setq migemo-use-pattern-alist t) // (setq migemo-use-frequent-pattern-alist t) // (setq migemo-pattern-alist-length 1024) // ;; 辞書の文字コードを指定. // (setq migemo-coding-system 'japanese-shift-jis-unix) ;;; <= EUCではない // // (load-library "migemo") // ;; 起動時に初期化も行う // (migemo-init) // //Meadow3についても同様にすればうまく使えているようでした。