如何让emacs在启动时拥有环境,好像已经阅读了我的bashrc?

问题描述 投票:0回答:2

在我的.emacs中,我有一些使用我的.bashrc定义的环境变量的东西。

如果我首先打开一个终端(它自动读取我bashrc),然后从那里打开emacs,我可以让一切工作。但是,如果我从GNOME的活动中打开它,它就不会。

有没有办法从GNOME的活动中打开emacs,但它有.bashrc的环境吗?

emacs environment-variables gnome
2个回答
2
投票

您可能应该在〜/ .profile中定义环境变量而不是〜/ .bashrc,因此它们只是在登录期间加载一次而不是每次启动shell时默认情况下emacs在从活动启动时都可以访问它们。

但是你可以设置一个自定义快捷方式来从登录shell启动emacs,如果这是你想要的方式:例如,=> settings - > keyboard - >使用bash -l -c 'emacsclient -nc -a "" &'之类的命令创建自定义快捷方式从登录shell启动emacs应该读取你的.bashrc。


0
投票

您可以使用exec-path-from-shell,这将加载所有shell变量,就像从终端启动emacs一样。

或者您可以手动添加它们。例如:

(defun aza-latex-path ()
  (setenv "PATH" (concat "/usr/local/texlive/2018/bin/x86_64-linux:"
                         (getenv "PATH")))
  (add-to-list 'exec-path "/usr/local/texlive/2018/bin/x86_64-linux"))

(defun aza-go-path ()
  (setenv "PATH" (concat "/usr/local/go/bin:"
                         (getenv "PATH")))
  (add-to-list 'exec-path "/usr/local/go/bin"))
© www.soinside.com 2019 - 2024. All rights reserved.