Acrescentando valores a variáveis de ambiente de dentro do Emacs

3

Eu sou novo no 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 prosseguir a partir deste ponto.

Antecedentes:

Esta pergunta é inspirada pelo fato de que é não ser possível criar um script de shell para manipular esse ambiente a partir do Emacs, então eu precisaria fazer isso usando o Elisp.

    
por Josh 07.10.2013 / 17:30

1 resposta

4

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)))
    
por 07.10.2013 / 17:36