在Linux中为Emacs访问定义环境变量

时间:2012-08-10 10:36:29

标签: emacs elisp

在Mac上,在environment.plist中定义环境变量将允许您在Emacs.app中使用环境变量。在Linux上,有这样的等价物吗?

我不想在其中一个shell或终端模拟器中使用环境变量,也想在find-file(Cx Cf),shell-command(C-!)等中使用环境变量。我有很多路径定义为环境变量,在这里会有所帮助。例如,查找find-file的文件可以是$ WORK / projectname,依此类推。

我认为最直接的方法是在setenv中使用.emacs,但由于我有很多这样的变量,如果我可以在外部文件中定义一次并拥有Emacs会更好读它。

编辑:对不起,请注意。这个问题专门解决了Emacs访问问题,因为在调用shell,eshell或term之前,〜/ .bashrc中定义的变量对Emacs不可用。

4 个答案:

答案 0 :(得分:3)

这里有一个脚本,它定义了几个环境变量,由Emacs以批处理模式读取

http://bazaar.launchpad.net/~python-mode-devs/python-mode/python-mode/view/head:/test/python-mode-tests.sh

来自lisp获取$ HOME例如使用(getenv“HOME”)

答案 1 :(得分:2)

为了能够访问.bashrc中的变量,您需要从bash shell启动emacs。如果您只是点击图标,则无法读取.bashrc,您将无法访问您的变量。

如果绝对无法从bash shell启动emacs,请找到桌面环境加载的init文件。就我而言,它是.xsession。我导出的任何变量都可以用于emacs。

要使用getenv来访问环境变量。

答案 2 :(得分:1)

如果在〜/ .bashrc中定义环境变量,则它们在用户shell中可用于所有命令。 正确的语法是:

export VARIABLE="value"

答案 3 :(得分:1)

您可以在主目录中编辑.bashrc,您可以在其中添加自己的别名,定义环境变量并为自定义脚本添加路径。