使用ido完成方法更改emacs商店中的recentf文件数

J S*_*pen 1 emacs elisp recent-file-list

我正在使用此页面上列出的ido方法:http://www.emacswiki.org/emacs/RecentFiles .我希望能够选择它存储的最近文件的数量.它似乎不存储很多.是否有这样的设置或简单的方法.下面列出的功能供参考.干杯

    (defun recentf-interactive-complete ()
  "find a file in the recently open file using ido for completion"
  (interactive)
  (let* ((all-files recentf-list)
     (file-assoc-list (mapcar (lambda (x) (cons (file-name-nondirectory x) x)) all-files))
     (filename-list (remove-duplicates (mapcar 'car file-assoc-list) :test 'string=))
     (ido-make-buffer-list-hook
      (lambda ()
        (setq ido-temp-list filename-list)))
     (filename (ido-read-buffer "Find Recent File: "))
     (result-list (delq nil (mapcar (lambda (x) (if (string= (car x) filename) (cdr x))) file-assoc-list)))
     (result-length (length result-list)))
    (find-file 
     (cond 
      ((= result-length 0) filename)
      ((= result-length 1) (car result-list))
      ( t
    (let ( (ido-make-buffer-list-hook
        (lambda ()
          (setq ido-temp-list result-list))))
      (ido-read-buffer (format "%d matches:" result-length))))
      ))))
Run Code Online (Sandbox Code Playgroud)

Tao*_*eng 6

也许您需要设置recentf-max-saved-items为指定的值,例如:

(setq recentf-max-saved-items 30) ; or what ever you want
Run Code Online (Sandbox Code Playgroud)

  • 不,`recentf-max-menu-items` 决定了 _shown_ 的项目数量,而不是保存的项目数量。例如,您可以保存最近的 500 个项目,只显示前 30 个。(如果您想利用更深的历史记录,您可以使用 ido 或其他东西) (2认同)