Is there a solution for inserting a filename to a buffer (either to a normal buffer, or to the minibuffer) using a recursive fuzzy search, using the vertico + consult + corfu + cape ecosystem? Something like what consult-file does, but instead of opening the selected file, insert the path of it to a buffer.

We have cape-file, but it doesn’t fuzzy search in a recursive way.

1 point

I feel like if I understood embark it would do that.

permalink
report
reply
1 point

It does do that. If you have embark-act bound to C-., then C-. i inserts the current minibuffer completion candidate into the buffer from which you ran the command that opened the minibuffer.

permalink
report
parent
reply
1 point

For minibuffer completion, I created this, kind of works, but if there is an already developed, fully working solution, I’d rather use that. And I’m still interested in for a solution to use in a normal buffer that corfu could use.

(defun my-consult-fd-string (&optional dir initial)
  (interactive "P")
  (setq this-command 'consult-fd)
  (pcase-let* ((`(,prompt ,paths ,dir) (consult--directory-prompt "Fd" dir))
	   (default-directory dir)
	   (builder (consult--fd-make-builder paths)))
(concat dir (consult--find prompt builder initial))))

(defun my-consult-insert-fd-string ()
  (interactive)
  (insert
   (abbreviate-file-name
(let ((f (bounds-of-thing-at-point 'filename)))
  (if f
      (let ((r (my-consult-fd-string (buffer-substring-no-properties (car f) (cdr f)) nil)))
	(delete-region (car f) (cdr f))
	r)
    (my-consult-fd-string t nil))))))
(define-key minibuffer-local-map (kbd "M-f") 'my-consult-insert-fd-string)
permalink
report
reply

Emacs

!emacs@communick.news

Create post

A community for the timeless and infinitely powerful editor. Want to see what Emacs is capable of?!

Get Emacs

  • Windows
  • Mac OS X
  • GNU/Linux and BSD (Just get it from your distribution’s package manager)

Rules

  1. Posts should be emacs related
  2. Be kind please
  3. Yes, we already know: Google results for “emacs” and “vi” link to each other. We good.

Emacs Resources

Emacs Tutorials

Useful Emacs configuration files and distributions

Quick pain-saver tip

Community stats

  • 18

    Monthly active users

  • 562

    Posts

  • 2.4K

    Comments