如何获取GNU Emacs中的最新文件列表?

时间:2008-09-08 18:56:15

标签: emacs ide

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

2 个答案:

答案 0 :(得分:23)

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

答案 1 :(得分:0)

即使您没有打开最新文件,Emacs也会将通过微型缓冲区输入的文件列表保存在变量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)
        ))))
  )

我发现这非常有用,并将其绑定到我的台式机键盘上的那些小特殊功能键之一。 (所以我还没有看到打开“最近使用...”的意义)