Giải pháp này không yêu cầu thay đổi init.el
(với sửa đổi nhỏ). Tuy nhiên, nó liên quan đến các đánh giá tệp cục bộ - nhưng đó chính xác là những gì OP yêu cầu. Ưu điểm của giải pháp là:
- yêu cầu xác nhận để đánh giá mã
- mã elisp có thể được chỉnh sửa và kiểm tra trong môi trường org-babel
- vì giải pháp không yêu cầu sửa đổi
init.el
tệp orgmode có thể được chia sẻ giữa những người dùng (đáng tin cậy)
Tôi đang xem xét lại giải pháp ở đây.
Thêm một khối src ở đâu đó trong tệp của bạn:
#+NAME: startup
#+BEGIN_SRC emacs-lisp
(your-code-here)
#+END_SRC
Sau đó, đặt phần này vào cuối tệp orgmode của bạn:
# Local Variables:
# eval: (progn (org-babel-goto-named-src-block "startup") (org-babel-execute-src-block) (outline-hide-sublevels 1))
# End:
Tôi đã thêm vào (outline-hide-sublevels 1)
vì tôi muốn ẩn khối src bên trong một tiêu đề và muốn các cấp dưới bị ẩn khi khởi động. Không có tuyên bố này, các cấp dưới sẽ được mở rộng bằng (org-babel-goto-named-src-block "startup")
.
Với giải pháp này, emacs sẽ yêu cầu 2 lần cho phép thực thi (lần 1: áp dụng biến cục bộ; lần 2: thực hiện "khởi động" -src-block). Vì tôi có rất nhiều khối src trong tệp của mình, tôi đã đặt một biến tệp cục bộ khác org-confirm-babel-evaluate
, như sau:
# Local Variables:
# org-confirm-babel-evaluate: nil
# eval: (progn (org-babel-goto-named-src-block "startup") (org-babel-execute-src-block) (outline-hide-sublevels 1))
# End:
Cảnh báo: Với phần bổ sung này, emacs sẽ chỉ nhắc một lần để được phép thực thi - tất cả các khối src trong tệp đó có thể được thực thi mà không cần xác nhận thêm. Như những người khác đã chỉ ra trước đây, hành vi này có thể nguy hiểm và bạn nên rất cẩn thận với cài đặt này.
Tuy nhiên, tôi cho rằng giải pháp này (đặc biệt là phiên bản đầu tiên) an toàn hơn giải pháp do Joe Corneli đưa ra bởi vì ít nhất bạn sẽ được yêu cầu xác nhận để thực thi. Giải pháp của Joe sẽ đánh giá khối đặc biệt mà không cần xác nhận, nếu nó được tìm thấy trong tệp. Kẻ tấn công sẽ phải đoán tên của khối đặc biệt, tất nhiên ...
Tôi đang sử dụng phương pháp này để viết các tài liệu lớn yêu cầu, ví dụ, thích nghi với các cơ chế xuất khẩu org.