如何让emacs从初始目录自动加载和保存桌面?

时间:2014-07-23 21:30:23

标签: emacs

我通常有3-4个不同的项目,我一次工作。所以我想弄清楚如何让emacs从我打开emacs的文件夹中加载桌面,并在退出该emacs实例时保存到该文件。

我看到的所有文档都描述了如何让emacs自动打开并从默认位置保存(这使得多个桌面无法实现),或者手动加载桌面并将其保存到特定目录(我正在做现在)。

谢谢!

3 个答案:

答案 0 :(得分:6)

把它放到你的.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)))

更新:v.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))))))

答案 1 :(得分:3)

我开发了一小组功能来管理多个桌面:desktop+

您可能想要查看它。不过,我的工作流程与您的工作流程并不完全相同:

  1. 我总是从同一个目录运行emacs(我从我的窗口管理器中的键绑定运行它),这意味着我不能依赖起始目录来知道我想要使用哪个桌面

  2. 我第一次参与新项目时,我打电话给 M-x desktop-create并提供一个名字。然后将桌面保存到中央位置(默认情况下,在"〜/ .emacs.d / desktops&#34下)

  3. 每次我想使用已保存的桌面时,我都会运行 Mx desktop-load,并提供已保存会话的列表,我可以在其中快速检索所需会话的名称。

  4. 当emacs退出或您加载另一个会话时,始终会保存会话。

答案 2 :(得分:2)

对于一个非常简单的答案,我把它放在我的.emacs文件的末尾。如果将桌面保存在项目文件夹中并从项目文件夹启动emacs,它可以正常工作。



var BusinessTableView = Marionette.CompositeView.extend({
   tagName: "table",
   className: "table table-hover",
   template: '#BusinessTableTpl',
   childView: BusinessRowView,
   childViewContainer: "tbody",
   appendHtml: function (collectionView, itemView) {
                console.log('append');
                 this.$("tbody").append(itemView.el);
   }
});