Emacs helm:向 helm-mini 添加新源

Emacs helm: Adding new sources to helm-mini

Helm 内置了 helm-mini 命令,其源代码中包含 buffersrecentf

(setq helm-source-buffers-list
      (helm-make-source "Buffers" 'helm-source-buffers)))
(helm :sources helm-mini-default-sources
      :buffer "*helm mini*"
      :truncate-lines t)

还有一个软件包 helm recent dirs 为 recentd 提供 helm 接口 它使用 '(helm-source-dired-recent-dirs) 作为来源。

我正在尝试将这两者结合起来,所以我将其添加到 helm-mini

(append helm-mini-default-sources '(helm-source-dired-recent-dirs))

但它不起作用。我错过了什么吗?

append 形式不会改变 helm-mini-default-sources 的值,所以它,即 M-x helm-mini,不起作用。您可以组合 setqappend 或只是 add-to-list:

(setq helm-mini-default-sources
      (append helm-mini-default-sources'(helm-source-dired-recent-dirs)))
;; or
(add-to-list 'helm-mini-default-sources 'helm-source-dired-recent-dirs 'append)

但更灵活的方法是使用普通的 setq,因为您可以选择来源及其顺序:

(setq helm-mini-default-sources '(helm-source-buffers-list
                                  helm-source-dired-recent-dirs
                                  helm-source-recentf
                                  helm-source-buffer-not-found))

不用自己写helm-mini函数,用自带的就够了