Edit: Même si je suis encore à apprendre les ficelles du métier de Babel, je l' ai lu sur les system-type
, emacs-version
et les window-system
variables qui sonnent comme si elles contiennent toutes les informations dont j'ai besoin pour obtenir le comportement que je viens de décrire. En fait, je pouvais simplement envelopper le code spécifique au système d'exploitation dans des conditions lorsque cela était nécessaire dans des blocs de code. Je me demande cependant si c'est la meilleure façon de procéder.
J'utilise Babel pour écrire des fichiers de configuration lettrés pour Emacs. Je voudrais que mes fichiers de configuration fonctionnent sur toutes les plates-formes que j'utilise fréquemment (donc essentiellement différentes distributions Linux et Mac), et une partie de cela implique d'avoir des paramètres qui dépendent du système (par exemple, la police par défaut que j'utilise sur mon Mac est différent de celui que j'utilise sous Linux Mint).
Bien que je sois sûr d'avoir vu des moyens de reconnaître si je suis sur un Mac en utilisant elisp (et que je pourrais donc envelopper tous les paramètres spécifiques au système dans une sorte de conditionnel basé sur cela), je me demande si Org / Babel a un moyen de détecter le type de système sur lequel je suis, ce qui me permettrait d'écrire différents blocs de code pour différents systèmes. Mieux encore, cela peut-il également être fait pour différentes versions d'Emacs? J'imagine du code qui ressemblerait à quelque chose comme ceci (avec des noms de plate-forme et d'en-tête étant des exemples artificiels)
#+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
Le gros poisson à faire frire est la plate-forme, car la version d'emacs et de l'emacsen que j'utilise peut probablement en être déduite dans la plupart des situations. Je dois mentionner que la plate-forme pourrait être plus grossière que ce que je suggère ci-dessus. (J'ai vraiment juste besoin de savoir si je suis sur une distribution Linux, Windows ou Mac.) De plus, si ce ne sont pas des fonctionnalités intégrées, comment pourrais-je créer des en-têtes de bloc de code comme ceux-ci?
Edit: Je suppose qu'il pourrait également être plus susceptible de ressembler à ce qui suit.
#+BEGIN_SOURCE EMACS-LISP :os Linux :emacs GNU :emacs-version 24+
[Some configuration for Linux and GNU Emacs 24+]
#+END_SOURCE
J'imagine que cela peut être trouvé quelque part dans la documentation s'il existe mais je n'arrive pas à trouver une liste complète des en-têtes pour les blocs de code. Merci pour toute l'aide que vous pourrez fournir!