Emacsを使っていて、今一番困っている事・・・
それは日本語での検索が激しくやりにくい事です。
全く出来ない訳ではないし、OrgModeのAgenda Viewからフリーワードで検索すると
サクサク引っかかるんですが、普通に検索したいなぁと
という訳で、下のHPを参考にC/Migemoを入れてみました。
参考にしたのは「Emacs 電子書棚」さん
http://www.bookshelf.jp/soft/meadow_49.html#cmigemo
いつもお世話になっております。
Migemoは漢字変換することなく、日本語を検索できる便利なツールです。
一般的に漢字を検索するときは、
Ctrl+f で検索窓を開いて、
たなか -> 田中 と漢字変換して[Enter]ですが、
Migemoを使うと、
Ctrl+s でインクリメンタルサーチのモードに入って、
Tana
とローマ字で打つと「田中」にヒットしてくれます。
MigemoはRubyベースとCベースの2種類存在します。
Rubyも試してみたんですが、何故かRomkan.rbの文字コードで引っかかり・・・
諦めましたww
というか、APELとrubyをインストールして、
Cygwinにrubyのパスを通して・・・と手数が掛かります。
その点Cで実装されたC/Migemo、しかも電子書棚さんに置いてあるバイナリを使うと、
無茶苦茶楽に導入できました。
まず電子書棚さんのページからコンパイル済みのバイナリを落としてきます。
http://www.bookshelf.jp/elc/cmigemo-1.1.013.lzh
解凍すると
・dict フォルダ
・original フォルダ
・cmigemo.exe
・migemo.dll
・migemo.el
が入っています。
cmigemo.exeとmigemo.dllは何も考えずに、
emacs.exeが入っているのと同じbinフォルダに放り込みます。
migemo.elはロードパスが通っているフォルダに置きます。
dictフォルダの中には、辞書ファイルが入っています。
ここでは
~/emacs/site-lisp
に[migemo]というフォルダを作って、
・han2zen.dat
・hira2kata.dat
・migemo-dict
・roma2fira.dat
の4つをコピーして来ました。
ここまで来たら、emacsの設定ファイルに下を書きこみます。
;; ----------------------------------------
;; C/Migemo
;; ----------------------------------------
;; ;基本設定
(setq migemo-command "cmigemo")
(setq migemo-options '("-q" "--emacs" "-i" "\a"))
;; ;migemo-dictのパスを設定
(setq migemo-dictionary "C:/gnupack_basic-4.08a/app/emacs/emacs/site-lisp/migemo/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)
(load-library "migemo")
;; 起動時に初期化
(migemo-init)
電子書棚さんのHPだと
(setq migemo-options '("-q" "--emacs"))
と書いてますが、migemo.elの中身を見てみると、
(setq migemo-options '("-q" "--emacs" "-i" "\a"))
と書くと行をまたいだ検索が出来る見たいです。
設定ファイルに書き込むときは、
括弧を閉じるたびにC-x C-eで評価していくと、
emacsを再起動したときに慌てずに済みます。
テストのために、自分の蔵書をまとめたリストを検索してみました。
C-sを押して、
[MIGEMO] I-search:
と出て、辞書のパスさえ間違っていなければ(多分)大丈夫です。
ちゃんとローマ字で検索が出来ています。
良く使う単語や珍しい人名はmigemo-dictの中に登録すればよい見たいです
(試してませんが)
下が、migemo-dictの中身です。
左側が検索対象で右側が補完文字列見たいです。
英語で検索して、日本語をひっかけることも出来る見たいです。
(Deutschlandで検索すると、独逸とドイツが引っかかる)

