-
Notifications
You must be signed in to change notification settings - Fork 9
Home
karthink edited this page Oct 8, 2021
·
7 revisions
Additional configuration
Here is a command to quickly switch directories in eshell that piggybacks on consult-dir:
eshell-z.mp4
(defun eshell/z (&optional regexp)
"Navigate to a previously visited directory in eshell."
(let ((eshell-dirs (delete-dups (mapcar 'abbreviate-file-name
(ring-elements eshell-last-dir-ring)))))
(cond
((and (not regexp) (featurep 'consult-dir))
(let* ((consult-dir--source-eshell `(:name "Eshell"
:narrow ?e
:category file
:face consult-file
:items ,eshell-dirs))
(consult-dir-sources (cons consult-dir--source-eshell consult-dir-sources)))
(eshell/cd (substring-no-properties (consult-dir--pick "Switch directory: ")))))
(t (eshell/cd (if regexp (eshell-find-previous-directory regexp)
(completing-read "cd: " eshell-dirs)))))))