繁体   English   中英

如何在Mac OS X上打开Emacs以使其加载我的$ PATH?

[英]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脚本,我可以用PlatypusAppify这样的东西包装。

所以我现在最接近的是:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM