Function: dired-simultaneous-find-file
dired-simultaneous-find-file is a byte-compiled function defined in
dired-x.el.gz.
Signature
(dired-simultaneous-find-file FILE-LIST NOSELECT)
Documentation
Visit all files in FILE-LIST and display them simultaneously.
The current window is split across all files in FILE-LIST, as evenly as
possible. Remaining lines go to the bottom-most window. The number of
files that can be displayed this way is restricted by the height of the
current window and the variable window-min-height. With non-nil
NOSELECT the files are merely found but not selected.
Source Code
;; Defined in /usr/src/emacs/lisp/dired-x.el.gz
(defun dired-simultaneous-find-file (file-list noselect)
"Visit all files in FILE-LIST and display them simultaneously.
The current window is split across all files in FILE-LIST, as evenly as
possible. Remaining lines go to the bottom-most window. The number of
files that can be displayed this way is restricted by the height of the
current window and the variable `window-min-height'. With non-nil
NOSELECT the files are merely found but not selected."
;; We don't make this function interactive because it is usually too clumsy
;; to specify FILE-LIST interactively unless via dired.
(let (size)
(if noselect
;; Do not select the buffer.
(find-file-noselect (car file-list))
;; We will have to select the buffer. Calculate and check window size.
(setq size (/ (window-height) (length file-list)))
(or (<= window-min-height size)
(error "Too many files to visit simultaneously. Try C-u prefix"))
(find-file (car file-list)))
;; Decrement.
(dolist (file (cdr file-list))
(if noselect
;; Do not select the buffer.
(find-file-noselect file)
;; Vertically split off a window of desired size. Upper window will
;; have SIZE lines. Select lower (larger) window. We split it again.
(select-window (split-window nil size))
(find-file file)))))