Emacs helm可以在不同来源的多个选择上运行不同的功能吗?

Emacs helm可以在不同来源的多个选择上运行不同的功能吗?,emacs,emacs-helm,Emacs,Emacs Helm,我正在尝试编写一个helm命令,从三个来源选择电子邮件地址:别名变量、org contacts和mu4e中的contacts。命令运行良好,向我展示了所有三个来源的候选人。但是,我需要一个函数来处理别名中的选择,另一个函数用于处理组织联系人,第三个函数用于处理mu联系人,最终结果是插入一个逗号分隔的电子邮件地址列表 我可以选择多个条目,但当我按下enter键时调用的函数是我所在的源的默认操作,并且它似乎没有将所选条目作为参数获取,并且helm标记的候选项似乎没有包含所有所选条目。下面是一个最小的

我正在尝试编写一个helm命令,从三个来源选择电子邮件地址:别名变量、org contacts和mu4e中的contacts。命令运行良好,向我展示了所有三个来源的候选人。但是,我需要一个函数来处理别名中的选择,另一个函数用于处理组织联系人,第三个函数用于处理mu联系人,最终结果是插入一个逗号分隔的电子邮件地址列表

我可以选择多个条目,但当我按下enter键时调用的函数是我所在的源的默认操作,并且它似乎没有将所选条目作为参数获取,并且helm标记的候选项似乎没有包含所有所选条目。下面是一个最小的示例,它允许跨源进行多个选择,但多个选择不会传递给相应的函数。有什么办法吗?或者如果可能的话

(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)))