rg.el は ripgrep を使って高速に検索するためのパッケージ。
el-get 本体にはレシピがないので自前で用意している。
(:name rg
:website "https://github.com/dajva/rg.el"
:description "Use ripgrep in Emacs."
:type github
:depends (transient wgrep)
:pkgname "dajva/rg.el")
そしてそれを el-get-bundle
でインストール
(el-get-bundle rg)
rg.el には wgrep と連携するための wgrep-rg.el が付属しているので検索結果を直接編集して一括置換などができる。
まず wgrep-rg から wgrep-rg-setup
を autoload で呼び出すようにする。なんとなく with-eval-after-load
で囲んでるが不要な気もする。
(with-eval-after-load 'wgrep
(autoload 'wgrep-rg-setup "wgrep-rg"))
そしてそれを rg-mode-hook
で呼び出すようにする
(defun my/rg-mode-hook ()
(wgrep-rg-setup))
(add-hook 'rg-mode-hook 'my/rg-mode-hook)
transient があるのでほぼ用意する必要はないけど最初の起動メニューのキーが覚えられないのでとりあえずそれを定義している。また、上で設定した wgrep も呼び出せるようにしている
(with-eval-after-load 'major-mode-hydra
(major-mode-hydra-define rg-mode (:separator "-" :quit-key "q" :title "rg-mode")
("General"
(("m" rg-menu "Transient menu")
("w" wgrep-change-to-wgrep-mode "Wgrep")))))