我怎样才能让recentf-mode与emacs服务器/客户端一起工作?

我怎样才能让recentf-mode与emacs服务器/客户端一起工作?

我喜欢recentf 在 Emacs 中使用模式,它会生成我最近打开的文件列表。该列表在会话之间是持久的,因此我可以访问我很久以前使用过的文件。

但是,我最近开始使用 Emacsclient 连接到 Emacs 服务器,该服务器在我登录时会自动打开。总的来说,这是一个很大的进步。然而,recentf模式开始缺失最多每当我重新启动计算机时打开的文件。它记得一些其中,我看不到记录文件的模式。

我该如何解决这个问题?我怎样才能让它记录全部我在会话之间访问并记住它们的文件?

答案1

我遇到了完全相同的问题,我通过进行两项更改解决了它。第一个关注这个帖子recentf-save-list,我创建了一个自动调用计时器的函数。因此,每隔几分钟,我们就会自动重写 ~/.recentf 文件:

(run-at-time nil (* 5 60) 'recentf-save-list)

我做的另一件事是向我的显示管理器 (lightdm) 添加一个关闭脚本,每次我注销或关闭时它都会优雅地关闭 emacs 服务器。您执行此操作的方式取决于您的显示管理器,但我的脚本看起来就像

#!/bin/bash
emacsclient -e "(save-buffers-kill-emacs)"

如果有一个每次客户端与服务器“断开连接”时自动重新运行的钩子也很好recentf-save-list,但我无法找出正确的钩子。

相关内容