用最近的清单替换启动画面


18

初始屏幕在开始时很有用,但现在我想要更有用的东西:如果没有要打开的预定义文件,我想在启动emacs时显示最近打开的文件的列表。更好的是,如果它可以是helm-recentf窗口(我使用helm包)


我看到您找到了解决方案,但我只是想评论一下,您不必局限于Emacs团队在其方法中设计的方法。startup.el. 您可以使所有这些内容无效,然后拥有自己的启动顺序。
法律名单

Answers:


15

MELPA上现在还提供了一个软件包:仪表板:https : //github.com/rakanalh/emacs-dashboard。该软件包使您可以看到一个初始屏幕,如下图所示:

仪表板截图

这是use-package我的配置中的代码片段,用于使用自定义横幅图像和文本行以及最新文件和书签的列表进行设置:

(use-package dashboard
    :ensure t
    :diminish dashboard-mode
    :config
    (setq dashboard-banner-logo-title "your custom text")
    (setq dashboard-startup-banner "/path/to/image")
    (setq dashboard-items '((recents  . 10)
                            (bookmarks . 10)))
    (dashboard-setup-startup-hook))

10

Manom​​agically:D,发布问题后,我在下面删除了一个引号,从而得到了有效的解决方案 .emacs

(setq initial-buffer-choice '(helm-recentf)) ;; Does not work

对此:

(setq initial-buffer-choice (helm-recentf)) ;; Works!!!
;; I still haven't tried doing with the built-in recentf only

或这个:

(setq initial-buffer-choice 'helm-recentf) ;; Works!!!

更新资料

实际上,它仍然无法与上述解决方案一起使用。我打开了文件,但是emacs之后立即切换到scratch缓冲区。我必须跳到所需文件的缓冲区。因此仍然需要更多帮助。

更新2

经过一番角力elisp,我终于明白了这一点:

(require 'recentf) ;; Provided for the whole picture
(require 'helm)
(require 'helm-config)

(defun startwithrecentf()
 (buffer-name (find-file (car (helm-recentf))))
  )
(setq initial-buffer-choice (startwithrecentf)) 

更新3

以下更为紧凑。它还粗略地处理了使用附加参数调用emacs的情况,即emacs somefile

(require 'recentf) ;; Provided for the whole picture
(require 'helm)
(require 'helm-config)
(if (< (length command-line-args) 2) 
(setq initial-buffer-choice (car (helm-recentf)))
)

2
相信您最初的尝试应该是(setq initial-buffer-choice 'helm-recentf)。该initial-buffer-choice可以有一个功能值,它没有括号中的引号形式会给。
有意义的用户名

显然,我的elisp新手技能。
biocyberman15年

我们在这里学习:)。有了该表格,我helm-recentf就可以启动缓冲区,因此不需要您的update 2解决方案。
有意义的用户名

@MeaningfulUsername我做了Update 3:D,它处理了用文件名或其他名称调用emacs的情况。
biocyberman

正如您已经指出的,引用的版本不会切换到缓冲区,因此您的(car(helm-recentf))似乎是正确的解决方案。(我认为这应该是lambda表达式,而不仅仅是列表,但是那行不通...)
有意义的用户

2

这是一个recentf-open-files在启动Emacs时没有打开文件的情况下显示的软件包:https : //github.com/zonuexe/init-open-recentf.el

使用use-package的配置:

(recentf-mode 1)
(setq recentf-max-menu-items 25)

(use-package init-open-recentf
  :config
  (init-open-recentf))
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.