【发布时间】:2008-09-08 18:56:14
【问题描述】:
当我使用 Emacs 时,我希望能够轻松地显示和浏览我处理过的文件列表,这些文件不仅来自当前会话,还来自以前的会话。 (顺便说一句,在 Windows 上运行 Emacs 22.2)
【问题讨论】:
当我使用 Emacs 时,我希望能够轻松地显示和浏览我处理过的文件列表,这些文件不仅来自当前会话,还来自以前的会话。 (顺便说一句,在 Windows 上运行 Emacs 22.2)
【问题讨论】:
来自Joe Grossberg的博客(不再可用):
但如果您使用的是 GNU Emacs 21.2 (最新版本,其中包括 这是标准发行版的一部分), 你可以把以下几行 进入你的 .emacs 文件
;; recentf stuff (require 'recentf) (recentf-mode 1) (setq recentf-max-menu-items 25) (global-set-key "\C-x\ \C-r" 'recentf-open-files)然后,当你启动 emacs 时,点击 CTRL-X CTRL-R。它将显示一个列表 缓冲区中最近打开的文件。 将光标移动到一行并按 输入。这将打开文件 问题,并将其移至顶部 您最近的文件列表。
(注意:Emacs 记录文件名。 因此,如果您移动或重命名一个 Emacs 之外的文件,它不会 自动更新列表。你会 必须打开重命名的文件 普通 CTRL-X CTRL-F 方法。)
Jayakrishnan Varnam 有一个 page including screenshots 说明这是怎么回事 包工作。
注意:您不需要 (require 'recentf) 行。
即使您没有打开recentf,Emacs 也会将通过minibuffer 输入的文件列表保存在变量file-name-history 中。此外,在 .emacs 文件中执行 (savehist-mode 1) 会使该变量在 Emacs 调用中保持不变。
所以这里有一个小函数,可以显示该列表中实际存在的文件(欢迎任何人使用/构建它):
(defun dir-of-recent-files ()
"See the list of recently entered files in a Dired buffer."
(interactive)
(dired (cons
"*Recent Files*"
(seq-filter
'file-exists-p
(delete-dups
(mapcar (lambda (s) (string-trim-right s "/*"))
file-name-history)
))))
)
我发现这非常有用,并将其绑定到我桌面键盘上的一个特殊功能键。 (所以我还没有看到打开recentf的意义......)
【讨论】: