私の.bashrcには、次の行があります。
export SETTINGS=/home/user/settings.xml
Rをbashにロードすると、次のSys.getenv
関数を使用してこの変数にアクセスできます。
Sys.getenv("SETTINGS")
"/home/user/settings.xml"
Emacs(Mx R)でRを開くと、設定は空になります。
Sys.getenv("SETTINGS")
""
私が試したこと:
コンパイルのためにEmacsにbash環境変数を認識させる方法に基づいて、以下を.emacsに追加します か?
;; get environment vars from .bashrc (let ((path (shell-command-to-string ". ~/.bashrc; echo -n $SETTINGS"))) (setenv "SETTINGS" path))
を使用してemacsでbashを開く
M-x term
echo $SETTINGS # works R Sys.getenv("SETTINGS") #works
ターミナルからemacsを開くと、期待どおりにSETTINGS変数が使用可能になります。
/usr/bin/emacs23 %F
(コマンドまたはのいずれかを使用して)アプリケーションメニューからemacsを開くemacs
ことはできません。Rをbashとemacsにロードしたときの出力を比較します
session("env")
が、(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
どちらでもいいですか
- emacs-essのR内からSETTINGSにアクセスする
- アクセスできる場所に設定をエクスポートしますか?