我将helm用于具有多个源的Emacs,并想知道如何提取用户用Ctrl+Space标记的所有条目的列表。例如,在*scratch*
缓冲区中执行以下操作
(require 'helm)
(defun helm-test-action (candidate)
"Test."
(interactive)
(message (concat "candidate = " (prin1-to-string candidate)
"n, helm-marked-candidates = " (prin1-to-string (helm-marked-candidates)))))
(defun helm-test-case ()
"Test."
(interactive)
(helm :sources (list (helm-build-sync-source "First Source"
:candidates '("one" "two" "three")
:action #'helm-test-action)
(helm-build-sync-source "Second Source"
:candidates '("four" "five")
:action #'helm-test-action))))
然后是CCD_ 2。
当你标记时,比如说;一个";以及";四";使用Ctrl+Space并按Enter键,如何从操作中检索两个标记的条目?candidate
似乎总是光标所在的行,而(helm-marked-candidates)
生成当前源的标记条目列表。如何获得所有来源的标记条目列表?
谢谢你的帮助,
HPF-
答案是使用(helm-marked-candidates :all-sources t)
。这将返回所有标记的条目的列表,如果没有标记,则返回当您点击回车键时光标下的条目。
当然,只有当所有源都包含相同形式的候选者,并且所有源的默认操作都相同时,这才有意义。但这一要求似乎没有得到执行。
问候,
HPF-