Edit: Mentre sto ancora imparando le corde di Babel, ho letto sui system-type
, emacs-version
e window-system
variabili, che suonano come essi contengono tutte le informazioni che mi servono per ottenere il comportamento che ho descritto qui. In effetti, potrei semplicemente racchiudere il codice specifico del sistema operativo in condizionali quando necessario in blocchi di codice. Mi chiedo se questo sia il modo migliore per farlo, comunque.
Sto usando Babel per scrivere file di configurazione per Emacs. Vorrei che i miei file di configurazione funzionassero su tutte le piattaforme che utilizzo frequentemente (quindi sostanzialmente varie distribuzioni Linux e Mac), e parte di ciò implica avere impostazioni che dipendono dal sistema (ad esempio, il carattere predefinito che uso sul mio Mac è diverso da quello che uso su Linux Mint).
Mentre sono sicuro di aver visto modi per riconoscere se sono su un Mac usando elisp (e quindi potrei avvolgere qualsiasi impostazione specifica del sistema in un qualche tipo di condizionale basato su questo), mi chiedo se Org / Babel ha un modo per rilevare il tipo di sistema su cui mi trovo che mi consentirebbe di scrivere blocchi di codice diversi per sistemi diversi. Meglio ancora, questo può essere fatto anche per diverse versioni di Emacs? Sto immaginando un codice che assomiglierebbe al seguente (con i nomi di piattaforma e intestazione che sono esempi inventati)
#+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
Il grande pesce da friggere è la piattaforma, dal momento che la versione di emacs e di emacsen che utilizzo possono probabilmente essere dedotte da questo nella maggior parte delle situazioni. Devo dire che la piattaforma potrebbe essere più grossolana di quanto suggerisco sopra. (Devo solo sapere se sono su una distribuzione Linux, Windows o Mac.) Inoltre, se queste non sono funzionalità integrate, come potrei fare per creare intestazioni a blocchi di codice come queste?
Modifica: suppongo che potrebbe anche essere più probabile che assomigli a qualcosa del seguente.
#+BEGIN_SOURCE EMACS-LISP :os Linux :emacs GNU :emacs-version 24+
[Some configuration for Linux and GNU Emacs 24+]
#+END_SOURCE
Immagino che questo possa essere trovato da qualche parte nella documentazione se esiste, ma non riesco a trovare un elenco completo di intestazioni per blocchi di codice. Grazie per tutto l'aiuto che potete fornire!