emacs dot-emacs

PATH y exec-path set, pero emacs no encuentra el ejecutable



dot-emacs (4)

Intente reemplazar la segunda línea con esto:

(setq exec-path (append exec-path ''("/usr/texbin" "/opt/local/bin")))

Mi .emacs contiene

(setenv "PATH" (concat ".:/usr/texbin:/opt/local/bin" (getenv "PATH"))) (setq exec-path (append exec-path ''(".:/usr/texbin:/opt/local/bin"))) (add-to-list ''load-path "/usr/local/share/emacs/site-lisp") (require ''tex-site) (load "auctex.el" nil t t) (load "preview-latex.el" nil t t)

/ usr / texbin es donde latex / pdflatex / .. están ubicados. / opt / local / bin / es donde se puede encontrar gs.

Y sin embargo, cuando ejecuto preview-at-point, que aparentemente necesita tanto latex como gs, obtengo

Preview-DviPS finished at Thu Dec 22 11:25:46 DviPS sentinel: Searching for program: No such file or directory, gs

lo que significa que el látex podría encontrarse bien, pero no gs.

No estoy seguro de si es necesario establecer exec-path, quizás PATH es suficiente, pero lo he establecido como una medida de depuración.

¿Por qué emacs no puede encontrar gs a pesar de que el directorio en el que se encuentra está tanto en PATH como en exec-path?


Me tocó un problema similar, pero con una RUTA correcta, incluido el final '':''. Resultó que faltaba el programa interno shell de emacs, lo que dio como resultado un''earching for programme: No such such file or directory'' message. Reparado con

(setq shell-file-name "bash").


Parece que te falta un separador de ruta : al final de tu cadena de ruta.


Si está configurando $PATH dentro de su Emacs, es posible que esté en OS X. Las aplicaciones de GUI no se inician a través de su shell, por lo que ven diferentes variables de entorno.

Este es un truco que utilizo para asegurar que $PATH dentro de Emacs sea el mismo que veo si enciendo un terminal ( pero vea la "actualización" a continuación ):

(defun set-exec-path-from-shell-PATH () "Set up Emacs'' `exec-path'' and PATH environment variable to match that used by the user''s shell. This is particularly useful under Mac OSX, where GUI apps are not started from a shell." (interactive) (let ((path-from-shell (replace-regexp-in-string "[ /t/n]*$" "" (shell-command-to-string "$SHELL --login -i -c ''echo $PATH''")))) (setenv "PATH" path-from-shell) (setq exec-path (split-string path-from-shell path-separator))))

Luego simplemente llame a la función set-exec-path-from-shell-PATH , tal vez desde su archivo de inicio de Emacs. Guardo ese código en github , BTW.

Actualización: este código ahora se ha mejorado y publicado como una biblioteca elisp llamada exec-path-from-shell ; paquetes installables están disponibles en MELPA .