如何在启动时设置默认窗口?


18

每次我打开Emacs时,我倾向于依次执行C-x 3split-window-right)和C-x2split-window-below)来设置3个窗口。之后,我必须切换到每个窗口以打开要编辑的文件。

如何设置为自动完成?

有没有办法让Emacs从上一次使用中恢复相同的屏幕组织(窗口和文件)?

Answers:


13

从Emacs 24.4开始,您可以使用desktop-save-mode。多年来,它一直是Emacs的一部分,但是自24.4版以来,仅保存和还原了窗口布局。

只需在您的init文件中添加以下行:

(desktop-save-mode 1)

3
这将还原上一个会话中的文件,但不会还原窗口布局。
itsjeyd 2014年

1
不,我已经测试过了。 Emacs手册:一旦保存了Emacs桌面(缓冲区,它们的文件名,主要模式,缓冲区 位置等等),随后的Emacs会话就会重新加载保存的桌面。
Sviridov Alexander

3
“缓冲区位置”是指点(光标)在给定缓冲区中的位置。是的,这将通过恢复desktop-save-mode。窗口布局是指当前显示多少个窗口以及它们的位置。desktop-save-mode不保留此布局。
itsjeyd 2014年

3
是的,“窗口布局”和“缓冲区位置”是不同的,您是正确的。但是我的窗口布局恢复了。好像在emacs-snapshot中添加了保存窗口布局的功能。
Sviridov Alexander

1
@pors,如果您在终端模式下使用Emacs(24.4或更高版本),情况似乎并非如此。没有窗口配置被保存/恢复。
skyork '16

7

在您的init文件中编写一个与该函数接近的函数,您可能需要对其进行一些修改以满足您的需求:

;; layout definition
(defun my-startup-layout ()
 (interactive)
 (delete-other-windows)
 (split-window-horizontally) ;; -> |
 (next-multiframe-window)
 (find-file "~/.emacs.d/init.el")
 (split-window-vertically) ;;  -> --
 (next-multiframe-window)
 (find-file "~/.emacs.d/init_settings.el")
 (next-multiframe-window)
 (dired "~")
)

;; execute the layout
(my-startup-layout )

有没有办法让Emacs从上次使用中恢复相同的屏幕组织(窗口和文件)?

你应该看看布局


6

您可以workgroups2用来管理桌面。从GitHub上的README:

工作组是Emacs的会话管理器。

  • 它将所有打开的缓冲区,它们的位置和大小保存在磁盘上,以便以后还原
  • 您可以创建多个工作区

您还可以还原以下缓冲区:org-agenda,shell,magit-status,help。

如果启用了MELPA存储库,则可以通过来安装此软件包M-x package-install RET workgroups2 RET

基本设置是:

(require 'workgroups2)
(workgroups-mode 1) ; This should go at the end of your init file

在将此代码添加到init文件之后,第一次重新启动Emacs时,workgroups2将自动为您创建一个工作组。您可以通过检查*Messages*缓冲区中的以下信息来验证此操作是否成功:

Workgroups Mode: on
Switched: First workgroup
Created: First workgroup  ( -<{ 0: First workgroup }>- )

从这时起,Emacs将在退出时自动保存Windows和文件的当前配置,并在下次启动时将其还原。


2

我一直在使用模仿sanityinc的.emacs.d的东西。它使用desktop-save-mode,并且足够聪明,可以frame-restore在较早版本的emacs上使用。自述frame-restorepackage-list-packages

保存和恢复Emacs框架的参数。

只需调用frame-restore' in yourinit.el':

(帧还原模式)

请注意,自r113242起,内置的桌面保存模式将还原帧。如果您使用的Emacs快照版本晚于此版本,则 强烈建议您使用桌面保存模式:

(桌面保存模式)

如果在其“桌面保存”模式可以还原帧的Emacs构建中启用了“帧还原”模式,则会显示粗体警告。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.