日々の記録

アニメと読書の感想をメインにしたブログです。 ☆ゆるゆるっと更新中です☆

Top Page › コンピュータ › Mac › OS X で percol で migemo を使う
2015-06-23 (Tue) 22:54

OS X で percol で migemo を使う

普段からターミナルを使う機会が多いので、peco や percol といったフィルタリングツールが気になっていました。

最初に peco を試しましたが、カスタマイズ用のファイルが JSON 形式なので、私に馴染みがなかったのと、設定ファイルにコメントを入れづらかったのが不便でした。さらに、custom filter として migemo を指定することができるものの、migemogrep などで検索すると動作がもっさりしてしまうのも残念でした。

そこで peco のベースになった percol を試してみることにしました。こちらは python で書かれていることもあり、設定ファイルも読みやすく、コメントを入れるのも簡単でした。こちらも filter として migemo を指定できるようになっていたのですが、migemo を有効にするとエラーが表示されてしまいます。

エラーを見ると、cmigemo を使う時に参照するライブラリが存在しないようです。ここに表示された libmigemo.so は OS X のライブラリ形式ではありませんでした。そこで、/usr/local/lib/python2.7/site-packages にある cmigemo フォルダの中にある migemo.py をみると、OS が Windows の場合の対応はありましたが、OS X の場合がありませんでした。

そこで migemo.py の44行目あたりに OS X の場合を追加しました。

def _load_libmigemo(self, lib_name = "libmigemo.so"):
    import platform
    if platform.system() == u"Windows":
    libmigemo = windll.migemo
    # OS X 用の設定を追加
    elif platform.system() == u"Darwin":
    libmigemo = CDLL("libmigemo.dylib")

さらに、migemo.py はバイトコンパイルされていますので・・・・

python -m compileall migemo.py

上記を実行してコンパイルします。

これでようやく、percol で migemo を使うことができるようになりました。peco で migemo を使った時よりも動作が速くて、快適に使うことができるようになりました。(^^)

そうそう。percol のドキュメントでは、「FinderMultiQueryMigemo.minimum_query_length = 1」の例が紹介されていましたが、家ではこれを設定すると検索する言葉によっては percol の反応が重たくなりました。
「FinderMultiQueryMigemo.minimum_query_length = 2」にすれば、大丈夫みたいです。

最終更新日 : 2022-10-30

Comment