Anexando valores a variáveis ​​de ambiente dentro do Emacs

Anexando valores a variáveis ​​de ambiente dentro do Emacs

Estou usando Elisp. Eu gostaria de fazer o seguinte no meu arquivo init:

; Retrieve the value of LD_LIBRARY_PATH
; Append '/path/to/some/lib/:'to it
; Save the new value of LD_LIBRARY_PATH

Até agora eu sei que posso usar:

(getenv "LD_LIBRARY_PATH")

para recuperar o valor e:

(setenv "LD_LIBRARY_PATH" "foo")

para definir um novo valor, mas meu conhecimento do Elisp é extremamente rudimentar, então não sei como prosseguir a partir deste ponto.

Fundo:

Esta pergunta é inspirada no fato de que énão ser possívelpara obter um script de shell para manipular esse ambiente de dentro do Emacs, então eu precisaria fazer isso usando o Elisp.

Responder1

No Elisp, a concatenação de strings é feita com concat:

(setenv "LD_LIBRARY_PATH"
  (let ((current (getenv "LD_LIBRARY_PATH"))
        (new "/path/to/some/lib"))
    (if current (concat new ":" current) new)))

informação relacionada