Đặt ngôn ngữ mặc định cho các khối mã trong orgmode


14

Có cách nào để xác định ngôn ngữ mặc định cho các khối mã chế độ org trong tiêu đề tài liệu không? Thông thường, trong một tài liệu org, tôi chỉ sử dụng một ngôn ngữ lập trình, vì vậy việc viết luôn mệt mỏi

#+BEGIN_SRC python
[...]
#+END_SRC

Thật tuyệt khi có thể làm một cái gì đó như

#+PROPERTY: header-args :session *mysession* :tangle yes :results silent :language python

[...]

#+BEGIN_SRC
[...]
#+END_SRC

Có bất kì cách nào để đạt được điều này không?


2
Điều này không trả lời câu hỏi về cách đặt ngôn ngữ mặc định, nhưng chắc chắn nó sẽ giúp bạn tiết kiệm rất nhiều thao tác gõ. Nhập <stheo sau là TABkhóa sẽ tự động mở rộng vào cấu trúc khối mã nguồn và sau đó bạn chỉ cần nhập python, đi đến dòng tiếp theo và điền mã.
Kaushal Modi

Kiểm tra orgmode.org/manual/ . Có vẻ như thông số kỹ thuật ngôn ngữ là bắt buộc. Bạn đã đăng trên danh sách org? Nếu bạn không, tôi sẽ, đây là một mong muốn thú vị và có lẽ phổ biến.
grettke


Cảm ơn, @grettke, vì đã chủ động đăng lên danh sách gửi thư.
andreas-h

Gợi ý từ danh sách gửi thư ở trên (nếu một người đang tìm giải pháp không liên quan đến việc có #+BEGIN_SRC pythontrong .orgtệp) Có lẽ bạn sẽ phải sửa đổi org-babel-get-src-block-information để nó trả về mặc định khi có không là gì sau # + BEGIN_SRC
ShreevatsaR

Câu trả lời:


10

Câu trả lời này cung cấp một cách giải quyết khả thi.

Cách dễ nhất để làm điều này sẽ là sử dụng các mẫu dễ dàng . Thêm mẫu của bạn vào org-structure-template-alist:

(add-to-list 'org-structure-template-alist
         '("py" "#+BEGIN_SRC python :results output\n?\n#+END_SRC" ""))

Dấu hỏi chỉ vị trí con trỏ. Chèn khối mã với <pyTAB trong trường hợp này.


2
Câu trả lời của bạn là làm thế nào để thêm các mẫu mới để mở rộng, không mặc định ngôn ngữ cho khối nguồn.
grettke

Mặc dù điều này giải quyết vấn đề giúp dễ dàng nhập các khối như vậy, nhưng nó không giải quyết được "vấn đề" mà tệp nguồn vẫn chứa #+BEGIN_SRC pythonthay vì chỉ #+BEGIN_SRC- điều này làm cho tệp nguồn khó đọc hơn một chút, chẳng hạn.
ShreevatsaR
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.