2012-04-10 9 views
2

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

は具体的には、私は "emacsのFILE1 FILE2 FILE3 FILE4" 呼び出し、GNU Emacsの24.0.91.1あり、例えば、同じよう

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

私のemacsを見るであろう、と私はのemacsclientを使用しないでください。

変更を永久にしたくないことに注意してください。だから私はコマンドラインの解決策を求めている。

答えて

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) 
+0

ありがとうございました。あなたが提供したコードは私のためには機能しませんが(私はそれを修正するためにそれを理解していません)。しかし、あなたがしていることは、私の問題を解決する方法を私に与えました。あなたが提案した "layout.el"を作成し、 "add-hook emacs-startup-hook(lambda()(他のウィンドウ1)(switch-to-buffer" bar ")))という行を追加しました。私のオリジナルの質問が欲しかった効果を達成する。追加の変更を加えるために、あなたが示唆したように(split-window-horizo​​ntally)(split-window-vertically)を使うことができます。 –

+0

これはどのように機能しないのですか? – thisirs

+0

与えられたコードを使用すると、私は4つのウィンドウを取得します。一番下のフレームがフレームの下半分をとり、 "バー"を含み、その上に3つのウィンドウがあります。右端はスペースの右半分をとり、 "foo"を含みます。左上部分は、「blah」と「* Scratch」の間に分割され、下に「blah」、上に「* scratch」が表示されます。私が「(split-window-vertically)」とコメントアウトすると、「blah」、「foo」、「bar」の3つのウィンドウが表示されます。さらに私が "(split-window-horizo​​ntally)"とコメントすると、一番上に "foo"、一番下に "Buffer List"が表示されます。 –

関連する問題