83 votes

Comment déterminer le système d'exploitation dans elisp?

Comment déterminer par programme le système d'exploitation sous lequel Emacs s'exécute dans ELisp?

Je voudrais exécuter un code différent dans .emacs selon le système d'exploitation.

93voto

scottfrazer Points 11035

La variable system-type :

 system-type is a variable defined in `C source code'.
Its value is darwin

Documentation:
Value is symbol indicating type of operating system you are using.
Special values:
  `gnu'         compiled for a GNU Hurd system.
  `gnu/linux'   compiled for a GNU/Linux system.
  `darwin'      compiled for Darwin (GNU-Darwin, Mac OS X, ...).
  `ms-dos'      compiled as an MS-DOS application.
  `windows-nt'  compiled as a native W32 application.
  `cygwin'      compiled using the Cygwin library.
Anything else indicates some sort of Unix system.
 

77voto

Endrju Points 321

Pour les nouveaux utilisateurs d’elisp, un exemple d’utilisation:

 (if (eq system-type 'darwin)
  ; something for OS X if true
  ; optional something if not
)
 

11voto

Eric Points 3491

Dans un .emacs, il n’ya pas seulement la variable system-type , mais aussi la variable window-system . Ceci est utile lorsque vous souhaitez choisir entre une option uniquement x, un terminal ou un paramètre macos.

2voto

La plupart du temps, c'est déjà répondu, mais pour ceux que ça intéresse, je viens de le tester sur FreeBSD et la valeur rapportée était "berkeley-unix".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X