Editar: Si bien todavía estoy aprendiendo las cuerdas de Babel, he leído acerca de los system-type
, emacs-version
y window-system
variables, que suenan como si contienen toda la información que necesito para obtener el comportamiento que he descrito aquí. De hecho, podría envolver el código específico del sistema operativo en condicionales cuando sea necesario en bloques de código. Sin embargo, me pregunto si esta es la mejor manera de hacerlo.
Estoy usando Babel para escribir archivos de configuración alfabetizados para Emacs. Me gustaría que mis archivos de configuración funcionen en todas las plataformas que uso con frecuencia (básicamente, varias distribuciones de Linux y Mac), y parte de esto implica tener configuraciones que dependen del sistema (por ejemplo, la fuente predeterminada que uso en mi Mac es diferente al que uso en Linux Mint).
Si bien estoy seguro de que he visto formas de reconocer si estoy o no en una Mac usando elisp (y, por lo tanto, podría envolver cualquier configuración específica del sistema en algún tipo de condicional basado en esto), me pregunto si Org / Babel tiene alguna forma de detectar el tipo de sistema en el que estoy, lo que me permitiría escribir diferentes bloques de código para diferentes sistemas. Mejor aún, ¿se puede hacer esto también para diferentes versiones de Emacs? Estoy imaginando un código que se parecería a lo siguiente (con ejemplos de plataforma y encabezados como ejemplos)
#+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
El gran pez para freír es la plataforma, ya que la versión de emacs y el emacsen que uso probablemente se pueden inferir de esto en la mayoría de las situaciones. Debo mencionar que la plataforma podría ser más gruesa de lo que sugiero anteriormente. (Realmente solo necesito saber si estoy en una distribución de Linux, Windows o Mac). Además, si estas no son características integradas, ¿cómo haría para crear encabezados de bloque de código como estos?
Editar: supongo que también podría ser más probable que se parezca a lo siguiente.
#+BEGIN_SOURCE EMACS-LISP :os Linux :emacs GNU :emacs-version 24+
[Some configuration for Linux and GNU Emacs 24+]
#+END_SOURCE
Me imagino que esto se puede encontrar en algún lugar de la documentación si existe, pero parece que no puedo encontrar una lista completa de encabezados para bloques de código. ¡Gracias por cualquier ayuda que usted nos pueda proporcionar!