30

当我使用 Emacs 时,我希望能够轻松地显示和浏览我处理的文件列表,这些文件不仅来自当前会话,还来自以前的会话。(顺便说一句,在 Windows 上运行 Emacs 22.2)

4

2 回答 2

26

来自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。它将显示缓冲区中最近打开的文件的列表。将光标移动到一行并按 ENTER。这将打开有问题的文件,并将其移至最近文件列表的顶部。

(注意:Emacs 记录文件名。因此,如果您在 Emacs 之外移动或重命名文件,它不会自动更新列表。您必须使用正常的 -- 方法打开重命名的CTRL文件X CTRLF

Jayakrishnan Varnam 有一个页面,其中包含该软件包如何工作的屏幕截图。

注意:您不需要这(require 'recentf)条线。

于 2008-09-08T19:00:55.960 回答
1

即使您没有打开 recentf,Emacs 也会将通过 minibuffer 输入的文件列表保存在变量file-name-history. 此外,(savehist-mode 1)在您的.emacs文件中执行会使该变量在 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的意义......)

于 2020-09-16T10:22:15.700 回答