Emacs:仅在重新启动后执行功能,而不是在评估缓冲区之后执行

时间:2013-11-01 12:34:56

标签: emacs startup

我喜欢在两个打开的窗口中开始我在Emacs的工作。为此,我在.emacs文件中有一个函数(水平拆分窗口)。

它没有任何问题,在每次评估.emacs缓冲区后将窗口分成两个并排的窗口。当然,每当我重新评估.emacs文件以测试一些新设置时,它也会分割窗口。如何在每次评估.emacs缓冲区后告诉emacs不要拆分窗口,而是仅在重新启动emacs之后?

我正在寻找类似的东西:

(eval-only-after-restart
    (split-window-horizontally))

有没有这样的功能?或者另一种方法怎么做?

4 个答案:

答案 0 :(得分:5)

像这样:

(unless (boundp 'done-split-window-horizontally)
  (split-window-horizontally)
  (setq done-split-window-horizontally t))

答案 1 :(得分:3)

另一种方式:

(add-hook 'emacs-startup-hook #'split-window-horizontally)

答案 2 :(得分:1)

在添加新内容时,不要重新评估整个缓冲区,而应考虑仅在评估所添加的sexp时,在所述sexp的末尾运行C-x C-e

答案 3 :(得分:0)

至于我,我在M-F12上有一个宏,它可以最大化emacs窗口(M-x maximize)并将其垂直拆分。由于我手动激活它,我决定何时进行,何时不进行。我想说的是,开头的自动拆分可能是一个好主意,但也许不是最好的。