[英]How can I open Emacs on Mac OS X such that it is loaded with my $PATH?
我正在运行Snow Leopard,并尝试运行Emacs,这样当我启动时, (getenv "PATH")
的输出与echo $PATH
Terminal.app
中的输出相同。
换句话说,我想从/Applications/Emacs.app
启动Emacs,并从我的$PATH
开始。 我无法弄清楚如何在emacs中执行此操作,或者如何启动emacs。 所以我花了大部分精力试图想出一个shell脚本,我可以用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 &
我试过通过在AppleScript中do shell script
来运行它,也无济于事。
我错过了什么基本的东西? 看起来这应该不难。 谢谢!
GUI应用程序不是由传统的shell启动的,也不会从.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的地方。
我刚才写了一个小小的elisp来解析env的输出并将它应用到Emacs环境,因为我不想维护一个plist。 代码位于http://paste.lisp.org/display/111574 。
我遇到了同样的问题,这就是我如何解决它。 我创建了〜/ .bashrc并用以下内容填充:
source /etc/profile
source ~/.profile
你必须将PATH导出到.app的位置,所以它会是这样的
export PATH = $ PATH:/ path / to / the / program
这应该允许您只键入EMACS,它将启动。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.