Edit: Sementara aku masih belajar tali dari Babel, saya sudah membaca tentang system-type
, emacs-version
dan window-system
variabel, yang terdengar seperti mereka berisi semua informasi yang saya butuhkan untuk mendapatkan perilaku saya sudah dijelaskan di sini. Bahkan, saya hanya bisa membungkus kode khusus OS dalam kondisi ketika diperlukan dalam blok kode. Saya bertanya-tanya apakah ini cara terbaik untuk melakukan ini, namun.
Saya menggunakan Babel untuk menulis file konfigurasi melek untuk Emacs. Saya ingin file konfigurasi saya berfungsi pada semua platform yang sering saya gunakan (jadi pada dasarnya berbagai distro Linux dan Mac), dan bagian dari ini melibatkan pengaturan yang bergantung pada sistem (mis., Font default yang saya gunakan pada Mac saya adalah berbeda dari yang saya gunakan di Linux Mint).
Sementara saya yakin saya telah melihat cara untuk mengenali apakah saya menggunakan Mac menggunakan elisp atau tidak (dan karenanya dapat membungkus pengaturan spesifik sistem dalam beberapa jenis kondisi berdasarkan ini), saya bertanya-tanya apakah Org / Babel memiliki beberapa cara untuk mendeteksi jenis sistem yang saya gunakan yang memungkinkan saya untuk menulis blok kode yang berbeda untuk sistem yang berbeda. Lebih baik lagi, dapatkah ini dilakukan untuk versi Emacs yang berbeda? Saya membayangkan kode yang akan terlihat seperti berikut ini (dengan contoh platform dan header dibuat-buat)
#+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
Ikan besar untuk digoreng adalah platform, karena versi emacs dan emacsen yang saya gunakan mungkin dapat disimpulkan dari ini dalam kebanyakan situasi. Saya harus menyebutkan bahwa platform bisa lebih kasar daripada yang saya sarankan di atas. (Saya benar-benar hanya perlu tahu apakah saya menggunakan Linux, Windows, atau distribusi Mac.) Juga, jika ini bukan fitur bawaan, bagaimana saya bisa membuat header kode-blok seperti ini?
Sunting: Saya kira itu juga lebih cenderung terlihat seperti berikut ini.
#+BEGIN_SOURCE EMACS-LISP :os Linux :emacs GNU :emacs-version 24+
[Some configuration for Linux and GNU Emacs 24+]
#+END_SOURCE
Saya membayangkan ini dapat ditemukan di suatu tempat di dokumentasi jika ada tetapi saya tidak bisa menemukan daftar header yang komprehensif untuk blok kode. Terima kasih atas bantuan yang Anda berikan!