Eu não acredito que isso seja possível, já que toda vez que você está invocando um subshell para obter o script, você está invocando um processo filho do processo original no qual os aplicativos emacs foram lançados.
A exportação de variáveis de ambiente é uma via de mão única, na qual apenas o pai pode fornecer variáveis para qualquer processo filho, mas nenhum processo filho pode manipular o ambiente do pai.
Experiência
Estou usando vim
, mas o mesmo deve se aplicar a emacs
. Arquivo de amostra para a fonte.
$ more ~/vars.bash
export VAR=somevalue
-
Ambiente pai inicial,
$VAR
não está definido$ echo $VAR $
-
Inicie o
vim
. Em seguida, invoque um subshell para obter o arquivo acima (:sh
).# check variable $ echo $VAR $ # source and re-check $ source ~/vars.bash $ echo $VAR somevalue
-
Saia do subshell, retorne ao vim. Em seguida, invoque outro subshell (
:sh
).$ exit ... back in vim, do another ':sh' ... # check variable $ echo $VAR $