エイリアス変数、org-contacts、および mu4e からの連絡先の 3 つのソースから電子メール アドレスを選択する helm コマンドを作成しようとしています。コマンドは正常に機能し、3 つのソースすべてから候補が表示されます。しかし、エイリアスからの選択に作用する関数が 1 つ、組織の連絡先に作用する関数が 1 つ、mu の連絡先に作用する関数が 3 つ必要です。最終結果は、挿入される電子メール アドレスのカンマ区切りのリストです。 .
複数のエントリを選択できますが、Enter キーを押したときに呼び出される関数は、現在のソースのデフォルト アクションであり、選択したエントリを引数として取得しないようで、helm-marked-candidates は取得しません。選択したすべてのエントリが含まれているようです。ソース全体で複数の選択を許可する最小の例を次に示しますが、複数の選択はそれぞれの関数に渡されません。それを行う方法についてのアイデアはありますか?または可能であれば?
(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)))