Thanks Driven Life

日々是感謝

C-u の有無で consult-grep の起点となるディレクトリを変更する

小ネタです。

設定

(leaf consult
  :ensure t
  :init
  (defun my-consult-ripgrep (arg)
    (interactive "P")
    (if arg ;; With C-u
    (consult-ripgrep)
      (consult-ripgrep default-directory)))
  :bind (("C-M-g" . #'my-consult-ripgrep)))

経緯

最近 (ようやく?) helm から consult に移行し始めました。 その過程で、helm 時代によく使っていた helm-ag もまた consult-grep (or consult-ripgrep ) へ乗り換えて使ってみたのですが、デフォルトの動きが以下のように異なっており、「うおおお」ってなっています。

  • helm-ag 今開いているバッファのディレクトリ以下を探索
  • consult-grep 今開いているバッファのディレクトリを使って様々な場所(※)を探索
    • project.el などの力を持って、例えば .git 管理下であればその root directory とか

個人的には前者の動きをよく使うのですが、後者も時々欲しくなるので、いい感じに使い分けたいなという気持ちから、冒頭の設定をしました。

余談

affe というやつを発見したのですが、 consult-ripgrep とどういう違いがあるのかまだよくわかっていない……