我通常同时处理3-4个不同的项目。所以我正在尝试想办法让emacs从我打开它的文件夹中加载桌面,并在退出emacs实例时保存到该文件中。
我看到的所有文档都描述了如何让emacs自动从默认位置打开和保存(这使多个桌面成为不可能),或者手动加载和保存桌面到特定目录(我现在正在做)。
谢谢!
我看到的所有文档都描述了如何让emacs自动从默认位置打开和保存(这使多个桌面成为不可能),或者手动加载和保存桌面到特定目录(我现在正在做)。
谢谢!
将以下代码添加到你的 .emacs 文件中:
(setq your-own-path default-directory)
(if (file-exists-p
(concat your-own-path ".emacs.desktop"))
(desktop-read your-own-path))
(add-hook 'kill-emacs-hook
`(lambda ()
(desktop-save ,your-own-path t)))
更新:版本2,按需忽略。
(setq your-own-path default-directory)
(if (file-exists-p
(concat your-own-path ".emacs.desktop"))
(if (y-or-n-p "Read .emacs.desktop and add hook?")
(progn
(desktop-read your-own-path)
(add-hook 'kill-emacs-hook
`(lambda ()
(desktop-save ,your-own-path t))))))
RELEASE
参数以避免留下锁定文件;因此实际上是:\
(lambda () (desktop-save ,default-directory t))`。 - philsdefault-directory
。
2)desktop-save
带有RELEASE参数时,现在尝试删除default-directory
中桌面锁定文件。因此,如果您解决了1)的问题,那么2)应该能够正常工作。your-own-path
存储了 Emacs 实例创建时 default-directory
的值。 - artscan我总是从同一个目录运行emacs(我在我的窗口管理器中使用快捷键运行它),这意味着我不能依靠起始目录来确定我想要使用哪个桌面
当我第一次处理新项目时,我调用 M-xdesktop-create
并提供一个名称。然后将桌面保存到中央位置(默认情况下为“~/.emacs.d/desktops”)
每次我想要使用已保存的桌面时,我运行 M-xdesktop-load
,并得到一个已保存会话的列表,其中我可以快速检索所需会话的名称。
(setq desktop-save t)
,桌面在必要时会自动保存。 - François Févotte对于一个非常简单的答案,我将以下内容放在我的.emacs文件的末尾。如果您将桌面保存在项目文件夹中并从该文件夹启动emacs,则它可以正常工作。
(desktop-change-dir default-directory)
(desktop-read DIRNAME)
和(desktop-save DIRNAME)
手动加载和保存桌面。在每种情况下,您应将DIRNAME
绑定到您的文件夹名称。 - artscan