启动 Emacs,左边是 org 文件,右边是议程

Start Emacs with org file on left and agenda on right

我想全屏打开 Emacs,两个 windows 垂直分开。我希望我的 todo.org 文件在左侧打开,我的议程视图在右侧打开。

类似的内容出现在本网站的其他几个问题中,但它们并不完全相同and/or我无法use/understand他们的答案来完全解决我的挑战.

我已经非常接近我的自定义-init.el 文件中的以下内容:

;; Windows layout setup
(add-to-list 'default-frame-alist '(fullscreen . maximized))
(split-window-right)
(setq initial-buffer-choice "~/emacs/Org/todo.org")
(setq org-agenda-window-setup 'current-window)
(add-hook 'after-init-hook (lambda () (org-agenda nil "u")))
(add-hook 'after-init-hook (lambda () (org-agenda-list 1)))

这会正确地格式化屏幕,使 window 位置和大小显示为我想要的。它还会打开我的待办事项文件并将其放在我想要的左侧,但我在右侧打开了暂存缓冲区。议程已正确创建和格式化,并且是缓冲区列表中的第三项(从头开始,todo.org,议程,然后是我在启动时打开的所有其他组织文件。)

非常接近,但经过几天的思考和尝试不同的事情,我就是没有达到目标。

window-setup-hook 添加一个挂钩应该会得到预期的效果 - 考虑到您的框架自定义。

(add-to-list 'default-frame-alist '(fullscreen . maximized))
(setq initial-buffer-choice "~/emacs/org/todo.org")

(defun my-init-hook ()
  (split-window-right)
  (let ((org-agenda-window-setup 'other-window))
    (org-agenda nil "a")))

(add-hook 'window-setup-hook #'my-init-hook)