ivyやcounselでmigemo対応を行うためにはavy-migemo
を使うひとがかつては多かった。
しかし、avy-migemo
は長くメンテされておらず、avy-migemo
を使わずにmigemo対応を実現する試みが多く行われている。以下はそのような対応を実現された方々のブログ記事である。
またQiitaにもすでに上記の記事を参考に設定を行った記事が見つかる。
これらの方々の記事を参考に、ivy系インターフェイスを持つコマンドをmigemo対応するためのminor-modeを書いたのだった。ivy-with-migemo-mode
である。MELPAのパッケージ登録はしていないので、ダウンロードしてロードパスの通ったところに置くとよい。
設定例は以下である。swiper
をはじめとしてcounsel-rg
までがmigemo対応の対象になる。なおmigemo-options
やmigemo-kill
、migemo-init
はcounsel-rg
をmigemo対応するための設定である。
(require 'ivy-with-migemo)
(setq ivy-with-migemo-enable-command ; migemo対応の対象となるコマンドを設定
'(swiper
swiper-isearch
counsel-recentf
counsel-rg))
(setq migemo-options '("--quiet" "--nonewline" "--emacs"))
(migemo-kill) ; migemoシャットダウン
(migemo-init) ; migemo再起動
(global-ivy-with-migemo-mode 1) ; 有効化
とくにcounsel-rgのmigemo対応により、日本語で書かれた複数ファイルにまたがってmigemo的な検索が(超)高速に実現できるので、便利だと思われる。なおrgコマンド(ripgrep)は、最新のソースコードを本家からダウンロードしてコンパイルするのがよい。Ubuntuのapt系ではとても古いバージョンものしか入らなかったからである。
以下の記事にivy-with-migemo-mode
作成の経緯を書いておいたので、ご参考まで。すでに同様の機能を実現しているivy-migemo
との違いについても触れている。ひとによってはivy-migemo
のほうが好みということも十分にあると思われる。