加载 Emacs 文件并在加载时创建 Window 排列

Load Emacs File and Create Window Arrangement Upon Load

我想知道是否可以以及如何在 Emacs 中执行以下操作:

  1. 每当打开 Emacs 时加载某个文件。特别是,它是一个位于用户主目录中的 .ORG 文件。

  2. 在该 Emacs 框架内创建 windows 的特定排列。如果重要的话,框架作为 GUI 打开。例如,它可以是两个垂直的 windows,其中一个又分成三个较小的 windows。

这是一个有点不雅的解决方案,但您可以让您的初始化文件 运行 与您用于手动实现设置的命令完全相同(使用 C-h f 帮助查找任何您不知道其命令名称的键盘快捷键)。

要打开文件,您可以使用命令find-file(命令运行 by C-x f)。您可以使用 split-window-rightsplit-window-below(分别是 C-x 2C-x 3)来拆分您的 window。 (应该注意的是,有一个更通用的 split-window 命令,但我在这里避免使用它,因为我只是复制如果我们手动设置所有内容,Emacs 会做的事情。)命令 other-windowC-x o) 在一帧内更改 windows - 请注意,当不以交互方式使用时,此函数需要一个输入参数(要遍历的 windows 的数量)。

您可以获得与您所询问的设置类似的设置(左侧为 org 文件,右侧为 3 个水平分割,所有单独的空缓冲区):

(find-file "ABSOLUTE-PATH-TO-FILE.org")
(split-window-right)
(other-window 1)
(split-window-below)
(switch-to-buffer "Fresh-Buffer-1")
(other-window 1)
(split-window-below)
(switch-to-buffer "Fresh-Buffer-2")
(other-window 1)
(switch-to-buffer "Fresh-Buffer-3")
(balance-windows)
(other-window 1)

您可能还想使用函数 set-frame-height and/or set-frame-width 给自己一个适当大小的框架(用法示例 (set-frame-width (selected-frame) 120))。此外,我建议将其放在 init 文件的末尾,这样您正在创建的缓冲区的模式就不会干扰您的任何其他 init 函数。