Как заставить emacs при запуске иметь среду, как будто прочитав мой bashrc? - PullRequest
0 голосов
/ 20 апреля 2019

В моем .emacs есть кое-что, что использует переменные окружения, определенные моим .bashrc.

Если я сначала открою терминал (который автоматически читает меня bashrc), а затем открою оттуда emacs, я смогу заставить все работать. Однако, если я открою, если из деятельности GNOME, это не так.

Есть ли способ по-прежнему открывать emacs из действий GNOME, но иметь его в среде .bashrc?

Ответы [ 2 ]

2 голосов
/ 20 апреля 2019

Вероятно, вам следует определять переменные окружения в вашем ~ / .profile, а не в ~ / .bashrc, поэтому они загружаются только один раз при входе в систему, а не каждый раз, когда вы запускаете оболочку, и emacs будет иметь к ним доступ при запуске из действийпо умолчанию.

Но вы можете установить собственный ярлык для запуска emacs из оболочки входа в систему, если вы так хотите: например, => settings -> keyboard -> создать собственный ярлык с помощью команды, подобной bash -l -c 'emacsclient -nc -a "" &' запустить emacs из оболочки входа в систему, которая должна читать ваш .bashrc.

0 голосов
/ 22 апреля 2019

Вы можете использовать exec-path-from-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"))
...