Emacs helm:向 helm-mini 添加新源

Chi*_*and 4 emacs elisp dot-emacs emacs-helm

Helm 具有内置helm-mini命令,其中包含buffers并包含recentf在其源代码中。

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

还有一个包 helm 最近的目录,它提供了 helm 接口,recentd'(helm-source-dired-recent-dirs)用作它的源。

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

(append helm-mini-default-sources '(helm-source-dired-recent-dirs))
Run Code Online (Sandbox Code Playgroud)

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

xuc*_*ang 5

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)
Run Code Online (Sandbox Code Playgroud)

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

(setq helm-mini-default-sources '(helm-source-buffers-list
                                  helm-source-dired-recent-dirs
                                  helm-source-recentf
                                  helm-source-buffer-not-found))
Run Code Online (Sandbox Code Playgroud)

无需自己编写helm-mini函数,使用内置函数即可。

  • 使用 `(require 'helm-dired-recent-dirs)` 在使用 `helm-mini` 之前引入变量 `helm-source-dired-recent-dirs`,你应该将它添加到你的 Emacs 配置中。 (2认同)