He visto ejemplos en línea donde las personas agregan rutas a la ruta predeterminada en Emacs con:
(add-to-list 'exec-path "/usr/local/bin/")
Soy nuevo en Elisp y creo que entiendo lo que hace la declaración anterior, pero tengo algunas preguntas:
¿ En qué orden Emacs busca a través de las rutas de ejecución? Por ejemplo, ¿considera el valor de
$PATH
(variable de entorno) en absoluto (y si es así, antes o despuésexec-path
?)¿Cómo puedo anteponer múltiples rutas de este tipo? ¿Puedo seguir concatándolos? p.ej
(add-to-list 'exec-path "PATH1", "PATH2")
o debería hacer:
(add-to-list 'exec-path "PATH1:PATH2:PATH3")
También encontré este paquete interesante en GitHub: exec-path-from-shell . ¿Por qué hay una necesidad de un paquete para esto?
Motivación
¿Alguna vez encontró que un comando funciona en su shell, pero no en Emacs?
Esto sucede mucho en OS X, donde una instancia de Emacs iniciada desde la GUI hereda un conjunto predeterminado de variables de entorno.
Esta biblioteca funciona resuelve este problema copiando variables de entorno importantes del shell del usuario: funciona pidiéndole al shell que imprima las variables de interés y luego las copie en el entorno Emacs.
C-h v exec-path
, use los manuales (Emacs y Elisp). En un manual, lo i exec-path
dirige a una explicación útil. Pregúntale a Emacs primero , no te arrepentirás de haberlo hecho.
(describe-function 'add-to-list)
(C-h f
) le dará el documento para laadd-to-list
función, así como enlaces a la fuente. También hay(describe-variable 'exec-path)
(C-h v
). Esto no pretende ser un comentario RTFM: estos documentos no responden todas las preguntas que enumeró, solo algo útil.