Tìm cách đánh giá mã elisp được lưu trữ trong một tệp bên ngoài và chuyển kết quả của nó dưới dạng đối số hàm. Ví dụ minh hoạ những gì tôi muốn đạt được sau:Giá trị kết quả của mã elisp được lưu trữ trong một tệp?
;; 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))))
Có lẽ tìm kiếm một chức năng eval giống như mà bên cạnh tác dụng phụ cũng trả về kết quả của biểu thức cuối cùng.
Bất kỳ ý tưởng nào?
(a) bạn nên đọc tài liệu của 'eval-buffer', mà không cần đầu ra lập luận thêm được loại bỏ (b) đối số thứ hai cho' xác định-auto-insert' cần phải là một chức năng, bạn có thể sử dụng một dạng lambda cho một hàm ẩn danh. –
Bạn đúng với bộ đệm eval, tôi đang tìm kiếm một phiên bản thay thế trả về kết quả biểu thức cuối cùng. Btw. làm thế nào có thể giúp lambda như một đối số thứ hai trong trường hợp này - tức là. đánh giá một tập tin elisp bên ngoài? –
Tôi chỉ có nghĩa là bạn có thể cần phải quấn mã gọi lên trong một '(lambda() ...)' để nó là một hàm ẩn danh. –