我喜欢recentf
在 Emacs 中使用mode,它会生成我最近打开的文件列表。这个列表在会话之间是持久的,所以我可以访问我很久以前使用的文件。
但是,我最近开始使用 Emacsclient 连接到 Emacs 服务器,该服务器在我登录时会自动打开。总的来说,这是一个很大的改进。但是,每当我重新启动计算机时,recentf
mode 就开始丢失我打开的大部分文件。它记住了其中的一些,我看不到记录文件的模式。
我该如何解决这种行为?我怎样才能让它记录我访问过的所有文件并在会话之间记住它们?
小智 8
我遇到了完全相同的问题,我通过进行两次更改来解决它。首先在这篇文章之后,我创建了一个函数来自动调用recentf-save-list
计时器。因此每隔几分钟,我们就会自动重写 ~/.recentf 文件:
(run-at-time nil (* 5 60) 'recentf-save-list)
Run Code Online (Sandbox Code Playgroud)
我做的另一件事是向我的显示管理器 (lightdm) 添加一个关闭脚本,每次我注销或关闭时,它都会优雅地关闭 emacs 服务器。你这样做的方式取决于你的显示管理器,但我的脚本看起来像
#!/bin/bash
emacsclient -e "(save-buffers-kill-emacs)"
Run Code Online (Sandbox Code Playgroud)
recentf-save-list
每次客户端与服务器“断开连接”时都有一个自动重新运行的钩子也很好,但我无法找出正确的钩子。