【问题标题】:Start Emacs with org file on left and agenda on right使用左侧的 org 文件和右侧的议程启动 Emacs
【发布时间】:2020-02-22 16:21:12
【问题描述】:

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

类似的内容出现在本网站的其他几个问题中,但它们并不完全相同和/或我无法使用/理解他们的答案来完全解决我的挑战。

我已经非常接近我的 custom-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)))

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

如此接近,但经过几天的思考和尝试不同的事情,我就是没有到达那里。

【问题讨论】:

  • 进一步的实验表明,“(add-hook 'after-init-hook '(lambda () (org-agenda-list 1)))”似乎对当前版本的我的尝试,可以在不改变结果的情况下删除。

标签: windows emacs startup org-mode agenda


【解决方案1】:

将钩子添加到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)

【讨论】:

  • 这给了我 3 个窗口。一个在顶部运行全宽显示议程视图,两个窗口在议程下方垂直拆分,这两个窗口都显示了 todo.org 文件。如果我将 (split-window-right) 向上移动到函数之外,我会得到两个窗口,水平拆分(不知道为什么会这样。代码清楚地写着“正确”。)顶部窗口显示议程视图,并且底部窗口显示待办事项文件。
  • 如果我运行emacs -Q -l <path/to/this/code.el>,这段代码正是我上面的代码,我会得到一个最大化的窗口,其中有 2 个拆分,左边是 org,右边是议程。我的猜测是你的 init 中有更多相关的部分,或者这可能是操作系统的差异——我在 debian 上,但我记得很久以前当我使用 windows 时存在一些启动差异,例如。最大化窗口
  • 我确实使用 Windows 10,所以也许这就是解释。我们正在讨论的代码非常接近 init 文件的顶部;在包所需的所有初始化和对包库(melpa 等)的访问之后。还有两个其他功能绑定到允许某些窗口操作的键。我刚才确实将那些结果注释掉了。
  • 要真正测试代码,您应该使用 emacs -Q 运行。文件中代码的实际位置在这里应该无关紧要,因为 my-init-hook 在 init 中的代码之后运行(除非可能对 window-setup-hook 有更多添加——最好只使用 -Q 运行以避免不确定性) .如果你在钩子外运行split-window-right,它可能发生在框架设置之前,这可能会导致你看到意想不到的结果
  • 这条评论链变得很长,但我不知道有什么替代方案。问题原来是使用 org-agenda-list 的 init 文件中的一行。该问题已在Emacs org-agenda-list destroy my windows splits 中讨论过
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-06
  • 1970-01-01
  • 2022-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多