読者です 読者をやめる 読者になる 読者になる

anything/helmのmigemo対応してないコマンドでmigemoりたい時にすべき設定方法

Emacs anything.el helm.el

以前から、anythingもmigemoも使っていますが、今日、あ、いや昨日、anything-migemo.elを知りました。
遅っ!!!って感じですな。
自分でも、つくづく流行についていけてない人間だなぁと思います。

したいこと

と、愚痴りはさておき、
anything-migemo.elはauto-install-batchでインストールすると同梱されており、
意識することなく、anything時の絞り込みでmigemoの恩恵を享受していました。

しかし、anythingなコマンドをいくつか試してみると、どうもmigemoが有効になっていないものをあるようでした。
それらでmigemoを有効にするにはどうしたら良いかと調べてみると下記エントリが見つかりました。

Emacsで自分で情報源を選んだanythingでmigemoを使う

自分の場合は、独自な情報源を使うとかではなかったので、単純に

(setq anything-use-migemo t)

としてみましたが、

  • 上記エントリで言われているようにエラーが出て使えなくなるコマンドがある
  • migemoが有効になっていると空白で区切っても候補が期待通りマッチしない(※1)

といった問題があり、

  • 個別にmigemoを有効(または無効)にするコマンドを決めたい
  • migemoの有効/無効を絞り込み時に切り替えたい

と思いました。

コマンドでmigemoを有効にする

上記エントリで使われているanything-migemoの定義を見てみると、 anything-use-migemoを局所的に設定変更することでmigemoを有効にしているようです。
なので、似たようなadviceを定義するかなぁと思いつつ、anything-migemo.elを眺めていると。
ありました。そのものズバリな機能を、ちゃんと作者さんは用意して下さっていました。

anything-migemize-commandがそれです。
以下のような感じでコマンド名を渡すと、そのコマンドを実行する時だけmigemoを有効にしてくれます。(※2)

(anything-migemize-command anything-for-files)
; w3mのバッファ切り替えでもmigemoを有効にしたい
(anything-migemize-command w3m-switch-buffer)

絞り込み時にmigemoの有効/無効を切り替える

のはできませんでした。
どうも、絞り込みで使う関数をmigemo対応のものに変えることでmigemoっているっぽいですが、
その関数を絞り込み時に切り替えるというのは難しそうで、諦めました。
ご存知の方がいらっしゃいましたら、是非ご教授願いたく。

その他

※1 migemoのオプションで回避できるかと思ったんですが、調べてもわかりませんでした。
※2 helmは使っていないのでわかりませんが、多分同じだと思います。