Chỉnh sửa: Trong khi tôi vẫn đang học những sợi dây thừng của Babel, Tôi đã đọc về system-type
, emacs-version
và window-system
các biến, mà âm thanh như chúng chứa tất cả các thông tin mà tôi cần để có được những hành vi của tôi đã mô tả ở đây. Trong thực tế, tôi chỉ có thể bọc mã dành riêng cho hệ điều hành trong các điều kiện khi cần trong các khối mã. Tôi đang tự hỏi nếu đây là cách tốt nhất để đi về điều này, tuy nhiên.
Tôi đang sử dụng Babel để viết các tệp cấu hình biết chữ cho Emacs. Tôi muốn các tệp cấu hình của mình hoạt động trên tất cả các nền tảng tôi thường sử dụng (về cơ bản là các bản phân phối Linux và máy Mac khác nhau) và một phần của việc này bao gồm các cài đặt phụ thuộc vào hệ thống (ví dụ: phông chữ mặc định tôi sử dụng trên máy Mac của mình là khác với cái tôi sử dụng trên Linux Mint).
Mặc dù tôi chắc chắn rằng tôi đã thấy các cách để nhận biết liệu tôi có sử dụng máy Mac hay không (và do đó có thể bao bọc mọi cài đặt dành riêng cho hệ thống trong một số điều kiện dựa trên điều này), tôi tự hỏi liệu Org / Babel có một số cách để phát hiện loại hệ thống mà tôi cho phép tôi viết các khối mã khác nhau cho các hệ thống khác nhau. Tốt hơn nữa, điều này cũng có thể được thực hiện cho các phiên bản khác nhau của Emacs? Tôi đang hình dung mã trông giống như sau (với các tên tiêu đề và nền tảng là các ví dụ)
#+Platform: LinuxMint
#+Emacs: GNU Emacs
#+EmacsVersion: 24+
#+BEGIN_SOURCE EMACS-LISP
[Some configuration for Linux Mint and GNU Emacs 24+]
#+END_SOURCE
#+Platform: LinuxMint
#+Emacs: GNU Emacs
#+EmacsVersion: 22.1
#+BEGIN_SOURCE EMACS-LISP
[Some other configuration for Linux Mint and GNU Emacs 22.1]
#+END_SOURCE
#+Platform: Mac
#+Emacs: Aquamacs
#+EmacsVersion: 24+
#+BEGIN_SOURCE EMACS-LISP
[Some other configuration for Mac and Emacs 24+]
#+END_SOURCE
Cá lớn để chiên là nền tảng, vì phiên bản của emacs và emacsen tôi sử dụng có thể được suy ra từ điều này trong hầu hết các tình huống. Tôi nên đề cập rằng nền tảng có thể thô hơn những gì tôi đề xuất ở trên. (Tôi thực sự chỉ cần biết nếu tôi đang phân phối Linux, Windows hoặc Mac.) Ngoài ra, nếu những tính năng này không có sẵn, tôi sẽ làm cách nào để tạo các tiêu đề khối mã như thế này?
Chỉnh sửa: Tôi cho rằng nó cũng có thể trông giống như sau.
#+BEGIN_SOURCE EMACS-LISP :os Linux :emacs GNU :emacs-version 24+
[Some configuration for Linux and GNU Emacs 24+]
#+END_SOURCE
Tôi tưởng tượng điều này có thể được tìm thấy ở đâu đó trong tài liệu nếu nó tồn tại nhưng dường như tôi không thể tìm thấy một danh sách toàn diện các tiêu đề cho các khối mã. Cảm ơn vì bất kì sự giúp đỡ nào của bạn!