就像在firefox中我们可以恢复关闭的选项卡(Emacs案例中的缓冲区)。似乎写一篇文章不应该太难,但在重新发明轮子之前,有没有人写过的好文章,快速谷歌搜索没有返回令人满意的结果。
答案 0 :(得分:1)
我不知道现有的此类功能。但你可以编写一个代码,例如,建议kill-buffer
。
有一个类似于delete-by-moving-to-trash
的布尔选项。在杀死缓冲区之前,请保存其相关信息(用于重新创建)以供以后检索。如果你想允许一次撤消多个缓冲区(例如不仅仅是最后一个被杀死的缓冲区),那么将保存的信息放在alist等上。
然而,保存和恢复所需的信息不明显 - 它取决于特定的缓冲区(至少它的模式,但甚至可能是其历史/状态的其他部分)。
因此,在一般情况下,这是有问题的。你可能会为某些用例提出可行且有用的东西,但请注意,可能没有一个好的一般答案。
答案 1 :(得分:0)
它并不完全是您所描述的内容,但 recentf 包会让您重新打开最近的文件。它是Emacs的一部分,所以没有可以安装的软件包。将其添加到您的init文件
(require 'recentf)
(recentf 1)
(global-set-key (kbd "C-x R") 'recentf-open-files)
然后如果您关闭文件,可以点击C-x R查看最近打开的文件列表以供选择。
文件列表也会保留到recentf-save-file
。
唯一的问题是它没有将最后关闭的文件移动到列表的顶部 - 如果它确实可以调用recentf-open-most-recent-file-1
来打开该文件,为您提供撤消关闭文件功能。
这可能是在此功能中将文件移动到列表前面的问题 -
(defun recentf-track-closed-file ()
"Update the recent list when a buffer is killed.
That is, remove a non kept file from the recent list."
(and buffer-file-name
(recentf-remove-if-non-kept buffer-file-name)))