Open yurikhan opened 2 years ago
Maybe something like this
(defun dired-collapse-jump ()
"Jump to the first parent directory with more than one file.
This is opposite of \"drilling down\" through empty collapsed directories."
(interactive)
(let* ((file-name (buffer-file-name))
(path (or (f-parent file-name) default-directory))
prev-path
files)
(while (and (file-directory-p path)
(file-readable-p path)
(setq files (f-entries path))
(= 1 (length files)))
(setq prev-path path)
(setq path (f-parent path)))
(dired-jump nil prev-path)
(dired-goto-file file-name)))
- (let* ((file-name (buffer-file-name))
+ (let* ((file-name (or (buffer-file-name) default-directory))
or something, because (buffer-file-name)
returns nil for Dired bufers and then (f-parent nil)
on the next line errors out.
Otherwise, it seems to work, thank you! ~Now I was going to bind it to [remap dired-jump]
but dired-collapse-mode
does not seem to have a keymap…~ Never mind, dired-collapse-mode
is not going to be enabled in file buffers so I’ll need to bind it globally.
Yea, good catch. I'll add it to the package, I like it. Good suggestion!
dired-collapse
lets us skip several levels of subdirectories when drilling down, and this is occasionally very convenient. It’s like saying “I go down this path” rather than repeating “I move forward” multiple times.It would be nice to also be able to say “I go up to the nearest interesting directory”, where “interesting” is defined as “has more than one item”.