我通常有3-4个不同的项目,我一次工作。所以我想弄清楚如何让emacs从我打开emacs的文件夹中加载桌面,并在退出该emacs实例时保存到该文件。
我看到的所有文档都描述了如何让emacs自动打开并从默认位置保存(这使得多个桌面无法实现),或者手动加载桌面并将其保存到特定目录(我正在做现在)。
谢谢!
答案 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+
您可能想要查看它。不过,我的工作流程与您的工作流程并不完全相同:
我总是从同一个目录运行emacs(我从我的窗口管理器中的键绑定运行它),这意味着我不能依赖起始目录来知道我想要使用哪个桌面
我第一次参与新项目时,我打电话给 M-x desktop-create
并提供一个名字。然后将桌面保存到中央位置(默认情况下,在"〜/ .emacs.d / desktops&#34下)
每次我想使用已保存的桌面时,我都会运行 Mx desktop-load
,并提供已保存会话的列表,我可以在其中快速检索所需会话的名称。
当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);
}
});