微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使Emacs识别bash环境变量进行编译?

我正在尝试通过Emacs的编译模式编译u-boot,而且看起来Emacs不知道如何找到bash环境变量.即使我设置它们,并且可以通过Emacs shell仿真进行编译,编译模式仍然尝试编译,就像它们不在那里一样.

我需要做些什么来使其更加环保意识?

您可以尝试添加类似于.emacs的内容
(let ((path (shell-command-to-string ". ~/.bashrc; echo -n $PATH")))
  (setenv "PATH" path)
  (setq exec-path 
        (append
         (split-string-and-unquote path ":")
         exec-path)))

根据您是否设置了.bash_profile或.bashrc中的env变量,您可能需要稍微调整此片段.该例子是PATH变量,这是一个更特别的(因为你必须在Emacs中设置exec-path),但可以扩展为任意变量的工作 – 你可以有一个变量的列表必须是从.bashrc读取并设置为Emacs.

我不知道你是否使用OS X或GNU / Linux.从Linux的GUI菜单栏启动Emacs通常会导致Emacs没有与从命令行启动的路径相同的路径.这个问题可追溯到第一个xdm Xsession脚本,而且它们相当容易修复(基本上使用一个执行exec $SHELL -c Xsession的Xsessionwrapper脚本,以便shell在运行用户的Xsession之前运行),没有人会打扰所以在很长一段时间(我怀疑任何人会).据我所知,问题出现在中等xdm后代,比如kdm和gdm.

在OS X上,处理env变量是另一个问题,为了获得ENV变量,您通常必须从命令行运行Emacs,如/Applications/Emacs.app/Contents/MacOS/Emacs或使用〜/ .MacOSX /environment.plist.我提供的代码段在两种情况下都应该覆盖你.

更新

最近这个过程更容易被exec-path-from-shell扩展.它以大致相同的方式设置emacs $PATH,但是使用扩展名通常比自己黑客解决方案更好.

原文地址:https://www.jb51.cc/bash/386405.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐