From 012ae671cffa241682d2bd341e3a2ae78f136233 Mon Sep 17 00:00:00 2001 From: rearman Date: Fri, 1 May 2026 17:10:45 -0400 Subject: [PATCH] Dired better opening add a defun and binding to open a file in another (re-used) window, instead of making a new window --- init.el | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/init.el b/init.el index a7cca84..9c8d330 100644 --- a/init.el +++ b/init.el @@ -377,6 +377,21 @@ Start from bottom if given a negative line number." (copy-file filepath (re/filename-inject-mod-time filepath ) nil t t t))) ;; Dired +(defun re/dired-display-direction () + "In dired mode, visit the file at the cursor in the right/below/left/above window." + (interactive) + (let* ((file-or-dir (dired-get-file-for-visit)) ;; get the file at cursor + (buffer (find-file-noselect file-or-dir))) ;; load the file into a buffer + (let ((window ;; figure out the window to use + (cond ((get-buffer-window buffer (selected-frame))) + ((window-in-direction 'right)) ;; try window in each direction + ((window-in-direction 'below)) ;; and default to right + ((window-in-direction 'left)) ;; if no window found. + ((window-in-direction 'above)) + (t (split-window (selected-window) nil 'right))))) + (window--display-buffer buffer window 'window nil) + window))) + (defun re/dired-new-frame () "Open dired in a new frame." (interactive) @@ -438,6 +453,9 @@ Start from bottom if given a negative line number." (add-hook 'dired-mode-hook (lambda () (progn + (keymap-set dired-mode-map + "o" + #'re/dired-display-direction) ;; Rename r,R+M(mv), chmod M>c, compress-to c>z (keymap-set dired-mode-map "z" -- 2.39.5