如何在 emacs-ess 中从 R 内部访问 bash 环境变量

2024-01-11

在我的 .bashrc 中,我有以下行:

export SETTINGS=/home/user/settings.xml

如果我在 bash 中加载 R,我可以使用Sys.getenv功能:

Sys.getenv("SETTINGS")
"/home/user/settings.xml"

如果我在 Emacs 中打开 R (M-x R),SETTINGS 为空:

Sys.getenv("SETTINGS")
""

我尝试过的:

  1. 将以下内容添加到 .emacs 中,基于如何让 Emacs 识别 bash 环境变量进行编译? https://stackoverflow.com/questions/9663396/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))
    
  2. 在 emacs 中打开 bash 使用M-x term

    echo $SETTINGS         # works
    R
    Sys.getenv("SETTINGS") #works
    
  3. 如果我从终端打开 emacs,SETTINGS 变量将按预期可用。从应用程序菜单打开 emacs(使用命令/usr/bin/emacs23 %F or emacs)不起作用。

  4. 比较输出session("env")在 bash 和 emacs 中加载 R 时,除了 (bash = ) 之外没有什么突出的:

    > 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
    

我可以吗

  1. 从 emacs-ess 中的 R 内部访问设置
  2. 将设置导出到我可以访问的地方?

我不了解R和自定义环境变量,但我将emacs中的PATH变量设置为与我的bashrc中相同的值。我针对您的问题修改了代码,试一试并告诉我它是否有效。

;; set env variable in Emacs
(getenv "SETTINGS")
(setenv "SETTINGS" "/home/user/settings.xml")

原始代码(对于 PATH)是:

;; Emacs has its own path variable
(getenv "PATH")
 (setenv "PATH"
(concat
 "/usr/local/texlive/2011/bin/x86_64-linux" ":"
(getenv "PATH")))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 emacs-ess 中从 R 内部访问 bash 环境变量 的相关文章

随机推荐

  • 如何检查 ionic/cordova/phonegap 中前台或后台运行的应用程序

    有没有办法检查应用程序是在 ionic cordova phonegap 中的前台还是后台运行 我需要在 android 和 ios 上使用它 非常感谢 使用两个事件 Pause and Resume 您将在以下位置找到所有活动Apache
  • 为什么渲染父组件而子组件试图进入子组件

    为什么渲染父组件而子组件试图进入子组件 react router dom 6 0 1 当我进入路线时 http localhost 3000 dashboard 视图工作 http localhost 3000 dashboard empl
  • R语言能否求一阶微分方程的泛解?

    R语言能否求一阶微分方程的泛解 例如 5x 6 2 y 5 5x 6 y 2 PS 这可以很容易地用手解决 即特定的解决方案是 y 1 5 5x 6 和通用的 C 5x 6 我需要了解R是否可以做到 我们可以使用R库deSolve获得 OD
  • 无法登录生产服务器

    在本地服务器上它可以工作 但是当我尝试登录生产服务器时 我收到以下消息 PHP Notice yii base ErrorException Array to string conversion 1 in var www html vend
  • 速度:iOS 使用 NSPredicate filterUsingPredicate 与 for 循环

    我需要过滤自定义对象的 NSMutableArray 并且想知道以下其中一项在速度 运行时方面是否比另一个更好 或者它们是否实际上相同 1 使用 数组filterUsingPredicate predicate or 2 使用for循环迭代
  • 如何在Python中并行处理列表? [复制]

    这个问题在这里已经有答案了 我写了这样的代码 def process data create file using data all data1 data2 data3 我想在我的所有列表上并行执行处理函数 因为它们正在创建小文件 所以我不
  • npm - EPERM mkdir:Windows 上不允许操作

    我正在使用 Node js 11 13 0 和 npm 6 0 以上 我尝试通过以下命令在 Windows 中设置 React js 应用程序 npx 创建反应应用程序新应用程序 输出如下 错误 EPERM 不允许操作 mkdir C Us
  • 非法配置:不再支持编译iOS 7之前的IB文档

    我最近更新到XCode 9 当我构建应用程序时它说 非法配置 我的 pod 文件中的一些故事板 我尝试重新创建故事板文件 但没有帮助 XCode 9 将不支持为低于 7 的 iOS 版本构建的故事板 尝试改变构建用于 in 文件检查器到更高
  • 带有默认参数的Python函数参数[重复]

    这个问题在这里已经有答案了 我是Python新手 我想定义一个函数from and to日期 如果我用一个参数调用该函数 它应该将该参数视为to日期 如果我传递两个参数 它应该分配from and to date 我定义如下 def ini
  • 从更新函数触发操作

    有一个希望很简单的问题 当我在更新函数中收到操作 A 时 我想返回一个执行某些操作的任务 然后生成操作 B 更新函数再次接收该操作 B 据我了解 从 Update 返回的任何效果都将由 startapp 执行 但似乎什么也没有发生 这是一个
  • 你能在 TypeScript 中创建嵌套类吗?

    有没有办法在 TypeScript 中嵌套类 例如 我想像这样使用它们 var foo new Foo var bar new Foo Bar 在现代 TypeScript 中 我们有类表达式 您可以使用它来创建嵌套类 例如 您可以执行以下
  • django sekizai {% addtoblock %} 标签无法正常工作

    我正在尝试实现 django sekizai 应用程序 它正在复制我添加的 js 文件 基本模板 load sekizai tags render block my js 使用此基础的模板 load sekizai tags div add
  • 如何获取 AngularJS 中可用模块的列表?

    在定义 Angular 模块时 我定义了我的依赖项 如下所示 var myModule angular module MyModuleName Dep1 Dep2 Dep3 每个依赖项都有自己的依赖项 指令 控制器等 有没有办法询问 Ang
  • 如何在网格中显示菜单 - ExtJS 5?

    我正在尝试在网格面板中显示菜单 我有一个操作列来显示一个图标 我想应用一个效果 当鼠标悬停在该图标上时 将显示一个菜单 我如何在 extjs 5 中做到这一点 我的行动栏是这样的 xtype actioncolumn width 70 it
  • Chronos 不运行作业

    我已经为每个服务使用 Docker 映像设置了 Mesos 集群 包括 Marathon 和 Chronos 我使用的 Docker 镜像如下 动物园管理员 jplock zookeeper 3 4 5 https registry hub
  • 将所有文件和文件夹从一个目录复制到另一个目录 PHP

    我有一个名为 mysourcedir 的目录 它包含一些文件和文件夹 所以我想使用 PHP 将此目录中的所有内容复制到 Linux 服务器上的其他 目标文件夹 function full copy source target if is d
  • SQL Server年份

    将 FINANCIALYEAR 声明为 varchar 30 将 FINALFINANCIALYEAR 声明为 int SELECT FINANCIALYEAR CONVERT VARCHAR YEAR GETDATE 2 CONVERT
  • 使用 MySqlDataAdapter 更新不起作用

    我正在尝试使用 MySqlDatAdapter 来更新 MySql 表 但是 该表永远不会更新 我以前这样做过 但使用的是 SQL Server 我的代码中还缺少其他特定于 MySql 的内容吗 DataTable myTable new
  • OpenMP“master”编译指示不得包含在“parallel for”编译指示内

    为什么英特尔编译器不允许我指定 openmp 中的某些操作parallel for块应该仅由主线程执行吗 如果没有这种功能 我该如何实现我想要实现的目标 我想做的是通过并行回调更新进度条 long num items computed 0
  • 如何在 emacs-ess 中从 R 内部访问 bash 环境变量

    在我的 bashrc 中 我有以下行 export SETTINGS home user settings xml 如果我在 bash 中加载 R 我可以使用Sys getenv功能 Sys getenv SETTINGS home use