Commit 829347cef2ee
Changed files (1)
tools
emacs
config
tools/emacs/config/config-shells.el
@@ -73,6 +73,27 @@ The EShell is renamed to match that directory to make multiple windows easier."
(error "Don't know how to extract %s" file)))
file)))
+ ;; From https://karthinks.com/software/jumping-directories-in-eshell/
+ (defun eshell/j (&optional regexp)
+ "Navigate to a previously visited directory in eshell, or to
+any directory proferred by `consult-dir'."
+ (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)))))))
+
(add-hook
'eshell-mode-hook
(lambda ()