我正在尝试编写一个helm命令来从三个来源中选择电子邮件地址:别名变量,org-contacts和来自mu4e的联系人。该命令工作正常,向我展示了来自所有三个来源的候选人。但是,我需要一个函数来处理别名中的选择,另一个函数作用于组织联系人,第三个函数作用于mu联系人,最终结果是插入的逗号分隔的电子邮件地址列表。
我可以选择多个条目,但是当我按Enter键时调用的函数是我所在的源的默认操作,并且它似乎没有将所选条目作为参数,并且helm-marked-候选人似乎没有所有选定的条目。这是一个允许跨源进行多个选择的最小示例,但多个选择不会传递给相应的函数。有关如何做到这一点的任何想法?或者如果可能的话?
(setq helm-source1
'((name . "source 1")
(candidates . (1 2 3 4))
(action . (lambda (x) (message-box "%s" (helm-marked-candidates))))))
(setq helm-source2
'((name . "source 2")
(candidates . ("a" "b" "c" "d"))
(action . (lambda (x) (message-box "%s" (helm-marked-candidates))))))
(defun j-insert-emails ()
"Helm interface to email addresses"
(interactive)
(helm :sources '(helm-source1
helm-source2)))