組織の分割アジェンダの作成、分割されたウィンドウの異なるアジェンダの問題の作成

私は、異なるアジェンダ・ビューを持つ分割されたorgmodeアジェンダ・ビューを保存するために、この厄介なコード(本当にコードはありません)を書いています。

(defun z/buffers-restore-agenda-split   ()
 (interactive)    
 (org-agenda nil "a")
 (split-window-right)
 (org-agenda nil "ba")
 (split-window-below)
 (org-agenda nil "bb")
 )

関数はウィンドウを正しく分割しますが、すべてのビューは各ウィンドウの別のビューの代わりに最後のオプション( "bb")を取得します

これがどうして起こるのか?

1

1 答え

問題は、新しいアジェンダバッファを作成するのではなく、 org-agenda のデフォルト動作が議題バッファの内容を置き換えることであるということです。これを変更するには、変数 org-agenda-sticky を設定します。

非nilはアジェンダqキーがアジェンダバッファを埋め込むことを意味します。   アジェンダコマンドは新しいバッファを生成するのではなく、既存のバッファを表示します。   nilの場合、 'q'は単一のアジェンダバッファを強制終了します。

これをグローバルに設定することも、 let を使って関数内で一時的に設定することもできます:

(defun z/buffers-restore-agenda-split   ()
  (interactive)
  (let ((org-agenda-sticky t))
    (org-agenda nil "a")
    (split-window-right)
    (org-agenda nil "ba")
    (split-window-below)
    (org-agenda nil "bb")
    ))
0
追加された
完璧!これは問題を解決します
追加された 著者 xsl,
何らかの理由で私は下のボタンを押してしまい、それを元に戻すことはできません。いずれの場合も、答えは完璧であり解決されます。管理人が投票できることを願って
追加された 著者 xsl,
あなたは投票を変更する前にしばらく待たなければなりません。
追加された 著者 Fernando Barrocal,
正義のためにupvoted。
追加された 著者 asteri,