En mi .bashrc, que tienen la línea:Cómo acceder a una variable de entorno fiesta desde dentro de R en emacs-ess
export SETTINGS=/home/user/settings.xml
Si se me carga R en bash, puedo acceder a esta variable mediante la función Sys.getenv
:
Sys.getenv("SETTINGS")
"/home/user/settings.xml"
Si abro R en Emacs (Mx R), la configuración está vacía:
Sys.getenv("SETTINGS")
""
Lo que he intentado:
añadiendo lo siguiente a .emacs, basado en How do I make Emacs recognize bash environment variables for compilation?
;; get environment vars from .bashrc (let ((path (shell-command-to-string ". ~/.bashrc; echo -n $SETTINGS"))) (setenv "SETTINGS" path))
apertura golpe en emacs usando
M-x term
echo $SETTINGS # works R Sys.getenv("SETTINGS") #works
Si abro emacs desde el terminal, los ajustes variable está disponible como se esperaba. La apertura de emacs desde el menú Aplicaciones (con el comando
/usr/bin/emacs23 %F
oemacs
) no funciona.comparando la salida de
session("env")
al cargar R en bash vs emacs, pero nada se destaca que no sea (bash = <, emacs =>):> INSIDE_EMACS=23.3.1,comint 6d5 < SETTINGS=/home/user/settings.xml 9c8 < SHLVL=1 > SHLVL=0 14a14 > PAGER=cat 16d15 < PAGER=/usr/bin/pager 19d17 < COLORTERM=gnome-terminal 25c23 < WINDOWID=14680069 > DESKTOP_AUTOSTART_ID=1020ce948b944a88113395253627645060000001863000 < TERM=xterm > TERM=dumb
¿Puedo sea
- acceso AJUSTES desde dentro de R en emacs-ess
- ¿AJUSTES DE EXPORTACIÓN en algún lugar donde puedo acceder?
¿Cómo está iniciando Emacs? Si comienzas un shell bash (con SETTINGS en el entorno) e inicias Emacs desde allí, debería funcionar. Tal como está, parece que el proceso principal no tiene esta variable de entorno (comenzando desde el shell Gnome o tal?). –
@MatthewLundberg Actualicé mi respuesta (vea el punto # 3). Apertura de la terminal funciona. Abrir con una llamada a '/ usr/bin/emacs23% F' desde el menú Aplicaciones, Gnome-do o un atajo de teclado no lo hace. – Abe