新たに設定中のWindows 7のマシンに,NTEmacs + cmigemoをインストールしました.先に書いておきますが,一部うまく動いていません.
cmigemo以前
cmigemoのインストール
Cygwinのシェルを起動します.
$ wget http://cmigemo.googlecode.com/files/cmigemo-default-src-20110227.zip $ unzip cmigemo-default-src-20110227.zip $ cd cmigemo-default-src $ chmod +x configure $ ./configure $ vim config.mk
(「prefix = /usr/local」の行を編集してパス変更)
$ make cyg
途中で
src/wordbuf.c:118:19: error: ‘INT_MAX’ undeclared (first use in this function)
というエラーが出て,コンパイルに失敗した.そこで,src/wordbuf.cの先頭部に「#include
$ make cyg $ cd dict $ make utf-8 $ cd .. $ make cyg-install
Emacs Lisp
http://gist.github.com/457761からmigemo.elをダウンロードして,適当な場所に置きます.
~/.emacsには次の設定をしました.
(when (and (executable-find "インストール先/cmigemo/bin/cmigemo.exe") (require 'migemo nil t)) (setq migemo-command "インストール先/cmigemo/bin/cmigemo.exe") (setq migemo-options '("-q" "--emacs" "-i" "\a")) (setq migemo-dictionary "インストール先/cmigemo/share/migemo/utf-8/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-lenght 1000) (setq migemo-coding-system 'utf-8-unix) (migemo-init) ; http://d.hatena.ne.jp/lapis25/20100918/1284775330 (set-process-query-on-exit-flag migemo-process nil)) ; [migemo]isearch で IME をオフにする ; http://www.jaist.ac.jp/~n-yoshi/tips/elisp_tips.html#ime-off (wrap-function-to-control-ime 'isearch-forward t nil) (wrap-function-to-control-ime 'isearch-forward-regexp t nil) (wrap-function-to-control-ime 'isearch-backward t nil) (wrap-function-to-control-ime 'isearch-backward-regexp t nil)
検索できない
それでNTEmacsを起動*1.
C-sで,スクラッチバッファ内の「buffer」にマッチできるか,試すと,最初の「b」を打っただけで,失敗と出ました.
タスク マネージャーを起動して,プロセスを見てみると,cmigemo.exeが起動していないことが分かりました.
NTEmacsでM-x shellを実行しても,出てくるのは,Cygwinのシェルではありません.
パスを追加しました.コントロール パネル>システム>システムの詳細設定>詳細設定(タブ)>環境変数 の順に選び,システム環境変数Pathの先頭に「C:\cygwin\bin;」を挿入します.念のためOS再起動.
それでも検索できない
NTEmacsで,cmigemo.exeが起動するようになりました.しかし先ほどの「b」は依然として失敗します.
検索語を変えてみると,うまくいく場合とダメな場合が見えてきました.b, c, e, n, m ,wから始まるものがダメでした.スクラッチバッファ内に限れば,C-sのあと,空白を打ち,その後にbufferとタイプすれば,マッチしました.
別に問題なく動いているマシンから,辞書ファイルや実行ファイルを転送してそれらに取り替え,起動・検索しても,またNTEmacsをダウングレードしても,事情は変わりませんでした.
*1:runemacs.exeをランチャに登録しています.