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,
$VARnã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 $