Добавление двоичного пути в emacs $PATH
Я попробовал следующее:
(setenv "PATH" (concat (getenv "PATH") ":~/mybin"))
(setq exec-path (append exec-path '(":~/mybin")))
Но это никогда не работало. Я попробовал М-! и набрав одно из двоичных имен, и это дало "неизвестную команду" также при выполнении Mx-компиляции с тем же результатом двоичного имени. Mx compile затем echo $PATH дал путь без моей папки ~/mybin. Я на солярисе. Что я делаю неправильно?
2 ответа
:
не требуется для exec-path. exec-path
список путей к каталогам И вы должны использовать абсолютные пути. Вы должны исправить, как показано ниже.
(setenv "PATH" (concat (getenv "PATH") ":" (expand-file-name "~/mybin")))
(setq exec-path (append exec-path (list (expand-file-name "~/mybin")))
Я рекомендую вам использовать https://github.com/purcell/exec-path-from-shell для установки PATH в Emacs. Он предоставляет функции, которые получают переменные окружения из вашей оболочки входа и устанавливают их в Emacs. Переменные среды легко делить между Emacs и shell.
Emacs $PATH
не существует $PATH
переменная оболочки Emacs и shell имеют разные пространства имен.
Однако - поскольку Emacs может читать и устанавливать $PATH через getenv, setenv - кажется, не что иное, как поиск библиотеки, к которой он обращался.
Я предпочел бы пойти с exec-path, чем.
Для примеров, делающих это:
(add-to-list 'exec-path "FULL_PATH_TO_BIN"))