Ищете способ оценить код elisp, хранящийся во внешнем файле, и передать его результат как аргумент функции. Пример демонстрирует, что я хотел бы достичь следующим образом:Значение результата кода elisp, хранящегося в файле?
;; content of my_template.el
'(this is a list)
;; content of .emacs where result of my_template.el has to be used
(define-auto-insert "\.ext$"
;; bellow is my attempt to retrieve resulting list object
;; but getting nil instead
(with-temp-buffer
(insert-file-contents ("my_template.el"))
(eval-buffer))))
Вероятно ищет Eval-как функции, которая помимо побочных эффектов также возвращает результат последнего выражения.
Любая идея?
(а) вы должны прочитать документацию 'Eval-buffer', без вывода дополнительных аргументов отбрасывается (б) второй аргумент' определить-авто-insert' должен быть функцией, вы можете использовать лямбда-форму для анонимной функции. –
Вы правы с eval-буфером, я искал альтернативную версию, которая возвращает результат последнего выражения. Btw. как это могло бы помочь лямбда в качестве второго аргумента в этом случае, т. е. удаление внешнего файла elisp? –
Я просто имел в виду, что вам может понадобиться обернуть вызывающий код в '(lambda() ...)', так что это анонимная функция. –