2

コマンドラインから Emacs を起動するときに、Emacs のウィンドウ レイアウトを指定できるようにしたいと考えています。

より具体的には、「emacs file1 file2 file3 file4」を呼び出し、たとえば次のようにします

+---------+                             +--------+
|  file1  |                             |  buff  |
|         |                             |  list  |
+---------+    instead of the default   +--------+  that I see currently
|         |                             |        |
|  file3  |                             |  file4 |
+---------+                             +--------+

私の emacs は GNU Emacs 24.0.91.1 で、emacsclient は使用しません。

変更を永続的にしたくないことに注意してください。そのため、コマンドライン ソリューションを求めています。

4

1 に答える 1

2

以下を入れますlayout.el

(setq inhibit-startup-screen t)

(defun ordered-window-list-aux (tree)
  (if (windowp tree)
      (list tree)
    (append (ordered-window-list-aux (nth 2 tree))
            (ordered-window-list-aux (nth 3 tree)))))

(defun ordered-window-list ()
  "Lists windows from top to bottom, left to right."
  (ordered-window-list-aux
   (car (window-tree))))

(require 'cl)

(defun fill-windows ()
  "Make window list display recent buffer."
  (mapcar*
   (lambda (win buf)
     (set-window-buffer win buf))
   (nreverse (ordered-window-list))
   (buffer-list)))

(delete-other-windows)

;; your window configuration
(split-window-horizontally)
(split-window-vertically)

;; Make window list display recent buffer
(fill-windows)

それで

emacs blah foo bar --load layout.el

あなたがしなければならない唯一のことは、次の機能の組み合わせを使用して、レイアウトを好きなようにカスタマイズすることです:

(split-window-horizontally)
(split-window-vertically)
(other-windows 1)
于 2012-04-11T08:52:50.457 に答える