tutorial source para mac descargar code emacs elisp

emacs - source - Cómo determinar el sistema operativo en elisp?



emacs para mac (7)

Ahora también existe el subsistema Linux para Windows (bash en Windows 10) donde system-type es gnu/linux . Para detectar este tipo de sistema, use:

(if (string-match "Microsoft" (with-temp-buffer (shell-command "uname -r" t) (goto-char (point-max)) (delete-char -1) (buffer-string))) (message "Running under Linux subsystem for Windows") (message "Not running under Linux subsystem for Windows") )

¿Cómo puedo determinar mediante programación qué SO Emacs se ejecuta en ELisp?

Me gustaría ejecutar código diferente en .emacs dependiendo del sistema operativo.


Creé una macro simple para ejecutar código fácilmente según el tipo de sistema:

(defmacro with-system (type &rest body) "Evaluate BODY if `system-type'' equals TYPE." (declare (indent defun)) `(when (eq system-type '',type) ,@body)) (with-system gnu/linux (message "Free as in Beer") (message "Free as in Freedom!"))


En .emacs, no solo existe el system-type , sino también la variable de window-system . Esto es útil cuando quiere elegir entre alguna opción x solo, o un terminal, o la configuración macos.


Esto ya se ha respondido en su mayoría, pero para los interesados, simplemente probé esto en FreeBSD y allí el valor reportado fue "berkeley-unix".


La variable de system-type sistema:

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.


Para las personas más nuevas a elisp, un uso de muestra:

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


También hay (en 24/25 al menos) system-configuration , si desea ajustar las diferencias en el sistema de compilación.