【问题标题】:How do I get list of recent files in GNU Emacs?如何在 GNU Emacs 中获取最近文件的列表?
【发布时间】:2008-09-08 18:56:14
【问题描述】:

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

【问题讨论】:

    标签: emacs ide


    【解决方案1】:

    来自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) 行。

    【解决方案2】:

    即使您没有打开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的意义......)

    【讨论】:

      猜你喜欢
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多