[leaf]:customで動的に生成したリストを使う
conao3/leaf.elに於いて、動的な値を :custom
キーワードに与えるにはバッククォートを使う必要があります。
(conao3さんのQiita記事 「Emacs入門から始めるleaf.el入門」にも記載があります。
(leaf foo
:custom
`(foo-variable . ,(+ 3 3)))
(backquoteについては info:elisp#Backquote を参照すると良いと思います。)
先の事例では、リストではない値を割り当てていましたが、リストを割り当てる場合は 少しトリッキーになります。
`(org-agenda-list . ',(directory-files "~/Documents/org" ))
(org-agenda-list quote (foo.org bar.org))
Org babelで実行して RESULTS
を見てみると変な感じがしますが、動いているぽい。
'
でクォートしてあげないと、完全に一つのリストになってしまいます。
これの理屈としては、恐らくバッククォートを用いたことで以下のように展開され:
(org-agenda-list . ("path1" . ("path2" . nil)))
これはつまりリストの構成と同じなのでくっついてしまうんでしょうね。
ちなみに、CDRがリストならDotted pair表示にはならないらしい (info:elisp#Dotted Pair Notationより) のでDotted pairの表示じゃないのは正常なようです。
When printing a list, the dotted pair notation is only used if the CDR of a cons cell is not a list.
まぁ普通のリストになっちゃうからそれはそうだよねっていう。
まだわからないこと
(org-agenda-files quote ("path1" "path2"))
と続いているが、なぜquote
がそこにあって動くのか?そもそも dotted Pairじゃなくしたらダメ...?(これはleafの仕様の話になってきます