Answers:
我需要像您一样管理桌面文件;每个项目都有一个单独的桌面文件,并分别为每个项目保存缓冲区,Emacs变量等。
我可以使用名为的软件包来实现这一目标bookmark+
。
Library Bookmark +管理不同类型的书签,其中之一是Desktop Bookmarks。
安装软件包后,
(require 'bookmark+)
在你的init.el
M-x bmkp-set-desktop-bookmark
或C-x p K。这将询问您要将桌面文件保存在何处,您可以选择将其保存在该项目的文件夹中。M-x bmkp-desktop-jump
或跳到不同的书签C-x j K。如果您想了解更多有关此软件包的信息,请参阅Emacs Wiki上的Bookmark +文档。
除此之外,我还有以下步骤来设置desktop
程序包,从中可以选择每个桌面要保存的内容
(desktop-save-mode 1)
;; Source: https://github.com/purcell/emacs.d/blob/master/lisp/init-sessions.el
; save a bunch of variables to the desktop file
;; for lists specify the len of the maximal saved data also
(setq desktop-globals-to-save
(append '((comint-input-ring . 50)
(compile-history . 30)
desktop-missing-file-warning
(dired-regexp-history . 20)
(extended-command-history . 30)
(face-name-history . 20)
(file-name-history . 100)
(grep-find-history . 30)
(grep-history . 30)
(ido-buffer-history . 100)
(ido-last-directory-list . 100)
(ido-work-directory-list . 100)
(ido-work-file-list . 100)
(magit-read-rev-history . 50)
(minibuffer-history . 50)
(org-clock-history . 50)
(org-refile-history . 50)
(org-tags-history . 50)
(query-replace-history . 60)
(read-expression-history . 60)
(regexp-history . 60)
(regexp-search-ring . 20)
register-alist
(search-ring . 20)
(shell-command-history . 50)
tags-file-name
tags-table-list)))
我发现将以下功能绑定到很有用,C-x C-c这样当我退出emacs时,桌面会自动保存。
(defun save-desktop-save-buffers-kill-emacs ()
"Save buffers and current desktop every time when quitting emacs."
(interactive)
(desktop-save-in-desktop-dir)
(save-buffers-kill-emacs))
有时,我不想在退出emacs时保存桌面。在这些情况下,我使用此其他功能并将其绑定到C-x M-c。
;; Kill emacs when running in daemon mode or not
;; Source: http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00348.html
(defun tv-stop-emacs ()
(interactive)
(if (daemonp)
(save-buffers-kill-emacs)
(save-buffers-kill-terminal)))
desktop-eve
“ ask-if-new”的区别`?