Thực thi khối src khi xuất chế độ org


7

Tôi có một số loại nhầm lẫn cơ bản về việc sử dụng các khối src trong chế độ org.

Tôi định nghĩa một lớp latex tùy chỉnh trong một khối src emacs-lisp ở đầu tệp org của tôi. Tuy nhiên, việc xuất không thành công, trừ khi tôi thực hiện thủ công khối src (vì lớp latex yêu cầu không tồn tại cho đến khi khối src được thực thi). Tôi không được phép cho phép thực thi khối.

Để làm ví dụ tối thiểu, tôi đã thử xuất cái này:

#+name: test
#+begin_src emacs-lisp
(message "Success")
#+end_src

Khi xuất, tôi thấy org-babel-exp processing...trong bộ đệm thư của mình và tôi sẽ thấy "Success"ngay sau đó, nhưng tôi thì không.

Tôi rõ ràng đang thiếu một cái gì đó rõ ràng, nhưng tôi không rõ ràng về thông tin những gì tôi nên làm.


Các khối mã không được đánh giá trừ khi bạn đặc biệt yêu cầu chế độ org thực hiện . Đoạn mã trong ví dụ của bạn sẽ chỉ xuất sang một khối mã theo định dạng xuất đã chọn của bạn: pdf, html, v.v. Thêm về chế độ org và khối nguồn .
Kaushal Modi

1
Đó là liên kết còn thiếu. Thêm #+CALL: test()vào ví dụ trên đã cho tôi hành vi dự kiến.
jake

Câu trả lời:


6

Các khối mã không được đánh giá trừ khi bạn đặc biệt yêu cầu chế độ org thực hiện . Đoạn mã trong ví dụ của bạn sẽ chỉ xuất sang một khối mã theo định dạng xuất bạn đã chọn: pdf, html, v.v.

Thêm về chế độ org và khối nguồn.

Dưới đây là phiên bản sửa đổi của ví dụ của bạn với #+CALL:dòng yêu cầu và tốt để có khai báo biến cục bộ đệm để đánh dấu việc thực thi emacs-lispđoạn trích là an toàn.

#+NAME: test
#+BEGIN_SRC emacs-lisp
(message "Success")
#+END_SRC

#+CALL: test()

# Local Variables:
# org-confirm-babel-evaluate: (lambda (lang body) (not (string= lang "emacs-lisp")))
# End:

2
Chính xác thì mã "Biến cục bộ" đang làm gì lại? Nó dùng để làm gì?
147pm

@ 147pm - Biến cục bộ cho phép khối nguồn emacs-lisp thực thi trong quá trình xuất mà không cần nhắc người dùng xác nhận. Để vô hiệu hóa xác nhận cho tất cả các ngôn ngữ, org-confirm-babel-evaluate: nilthay vào đó hãy làm .
Melioratus
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.