2014年8月23日土曜日

[emacs][cygwin][mac] cygwin及びmac環境へのcmigemoのインストール

cmigemoという便利なツールあることを知って、Windows(cygwin)とmacにインストールしました。cmigemoを利用することで、emacsのI-searchでひらがな・カタカナ・漢字を検索できるようになり非常に便利です!
例えば、C-sもしくはC-rに続き"kara"を入力すると、メインバッファ中の「から」「」「(からす)」「カラオケ」「karaoke」「小」がインクリメンタルサーチにかかります。

cygwinでのインストール手順

  • Cygwin SetupからC/Migemoのビルドに必要なパッケージをインストール
    • cygwinディレクトリのsetup_x64_64.exe(setup_x64.exe)を起動し、以下のパッケージを選択、インストールします。
      • Devel
        • gcc
        • make
      • Libs
        • libiconv
      • Web
        • wget
  • qkcのインストール
    • QKC Home Pageから"For UNIX"版のzipアーカイブをダウンロードしてインストールします。
    • 
      % unzip qkcc100.zip
      % make
      % cp qkc.exe /usr/local/bin
      
      
  • cmigemoのインストール
    • 以下のコマンドを実行することでインストールできます。オフィシャルな手順はcmigemo/doc/README_j.txtに記載されています。
    • 
      % git clone https://github.com/koron/cmigemo.git
      % cd cmigemo
      % ./configure
      % make cyg
      % make cyg-dict
      % make cyg-install
      
      
    • ./configureで"$'\r': コマンドが見つかりません"というエラーが出る場合はこちらを参考にしてエラーを回避してください。
    • 最後のmake cyg-installの実行で/usr/local以下に関連ファイルがコピーされます。アンインストールしたい場合にはmake cyg-uninstallを実行してください。
      • <要確認>インストールには管理者権限が必要(管理者権限を付与したターミナル上で実行)?
  • migemo.elのインストール
    • emacsを起動し以下のコマンドを実行
    • 
      M-x package-refresh-contents
      M-x package-install migemo
      
      
    • .emacsに以下のコードを追加
    • 
      (require 'migemo)
      (setq migemo-command "cmigemo")
      (setq migemo-options '("-q" "--emacs"))
      ;; Set your installed path
      (setq migemo-dictionary "/usr/local/share/migemo/utf-8/migemo-dict")
      (setq migemo-user-dictionary nil)
      (setq migemo-regex-dictionary nil)
      (setq migemo-coding-system 'utf-8-unix)
      (load-library "migemo")
      (migemo-init)
      
      

macでのインストール手順

  • cmigemoのインストール
    • 以下のコマンドを実行することでcmigemoをインストールできます。デフォルトでインストールされているnkf, iconvが利用されるため、cygwinで行ったセットアップは不要です。
    • 
      % git clone https://github.com/koron/cmigemo.git
      % cd cmigemo
      % ./configure
      % make osx
      % make osx-dict
      % sudo make osx-install
      
      
    • デフォルトのインストール先は/usr/localになります。/usr/local/bin, /usr/local/libがPATH, LD_LIBRARY_PATHに設定されていない場合にはこれらを追加する必要があります。
  • migemo.elのインストール
    • emacsを起動し以下のコマンドを実行
    • 
      M-x package-refresh-contents
      M-x package-install migemo
      
      
    • .emacsに以下のコードを追加。utf8を利用する設定が紹介されておりcygwin環境ではそれを用いましたが、自分のmac環境ではutf8では後述の問題が出たためeuc-jpを設定しています。
    • 
      (require 'migemo)
      (setq migemo-command "cmigemo")
      (setq migemo-options '("-q" "--emacs"))
      ;; Set your installed path
      (setq migemo-dictionary "/usr/local/share/migemo/euc-jp/migemo-dict") ; macではutf8はNG?
      (setq migemo-user-dictionary nil)
      (setq migemo-regex-dictionary nil)
      (setq migemo-coding-system 'euc-jp) ; macではutf8はNG?
      (load-library "migemo")
      (migemo-init)
      
      
  • (補足)macではutf8の設定では正しくI-searchできない?
    • cygwinと同じ手順で「mac環境でも幸せ〜」になる予定だったのですが、アルファベットのI-searchができず不幸せな状態になってしまいました。問題の状況は"compile"を検索しようとして"co"をI-searchで入力しても検索に失敗してしまう、という状態でした。ミニバッファには以下のような情報が出力されています。"compi"まで入力すれば検索できる状態になります。
      • [MIGEMO] I-search: co [incomplete input]
    • この情報を見つけて以下のコマンドを実行してみましたが状況は改善せず。
      • M-x migemo-pattern-alist-clear
    • 試行錯誤した結果、エンコードをutf8からeuc-jpに変更すると正しく動作するようになったため、現状はこの設定で利用しています。

参考

0 件のコメント:

コメントを投稿