Как я могу открыть Emacs в Mac OS X так, чтобы он загружался с моим $ PATH? - PullRequest
3 голосов
/ 27 декабря 2010

Я использую Snow Leopard и пытаюсь запустить Emacs так, чтобы при его запуске вывод (getenv "PATH") совпадал с выводом в Terminal.app из echo $PATH.

Другими словами, я хочу запустить Emacs с /Applications/Emacs.app и начать его с моего $PATH.Я не смог понять, как это сделать в emacs или как я запускаю emacs.Поэтому я потратил большую часть своих усилий, пытаясь придумать сценарий оболочки, который я мог бы обернуть чем-то вроде Platypus или Appify .

ИтакУ меня сейчас есть:

echo MYPASSWD | sudo -S -u USERNAME -i nohup /Applications/Emacs.app/Contents/MacOS/Emacs > /dev/null &

, что не удается, потому что кажется, что nohup выбрасывает мою $ PATH, несмотря на флаг -i.Следующее не выбрасывает мой PATH, но открывает лишнее Terminal.app:

echo MYPASSWD | sudo -S -u USERNAME -i open /Applications/Emacs.app/Contents/MacOS/Emacs > /dev/null &

Я пытался запустить это через do shell script в AppleScript, также безрезультатно.

Я что-то упустил?Не похоже, что это должно быть сложно.Спасибо!

Ответы [ 4 ]

2 голосов
/ 27 декабря 2010

GUI-приложения не запускаются традиционной оболочкой и не наследуют переменные окружения из обычных мест, таких как .profile, .bash_profile и т. Д.

http://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/EnvironmentVars.html%23//apple_ref/doc/uid/20002093-BCIJIJBH объясняет, что ~/.MacOSX/environment.plistэто место, куда вы, вероятно, захотите добавить свой любимый эквивалент $ PATH.

2 голосов
/ 27 декабря 2010

Некоторое время назад я написал небольшое elisp, чтобы проанализировать вывод env и применить его к среде Emacs, потому что я не хотел поддерживать plist.Код на http://paste.lisp.org/display/111574.

1 голос
/ 30 ноября 2012

Я столкнулся с той же проблемой, и вот как я обошел ее.Я создал ~ / .bashrc и заполнил его:

source /etc/profile
source ~/.profile
0 голосов
/ 27 декабря 2010

Вы должны экспортировать PATH в местоположение .app, чтобы это было что-то вроде этого

export PATH = $ PATH: / path / to / the program

Этодолжен позволить вам просто набрать EMACS, и он запустится.

...