在 nix 中使用 ESS (Emacs Speaks Statistics)

Using ESS (Emacs Speaks Statistics) with nix

我想将 ESS 与 R 的 nix 版本和我需要的包一起使用。

以下是我可以通过 shell

执行的操作
nix-shell shell.nix -I nixpkgs=/Users/dom/nixpkgs --run R

shell.nix 确保我有 R 和可用的 R 包,而无需 install.packages。例如。我在 nix 中得到了 ggplot2 的版本:

R version 3.4.3 (2017-11-30) -- "Kite-Eating Tree"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin17.3.0 (64-bit)

> installed.packages()["ggplot2","LibPath"]
installed.packages()["ggplot2","LibPath"]
[1] "/nix/store/4nm5rs5d0ywpw7ksd0hblminim4kvnr0-r-ggplot2-2.2.1/library"

ESS 有变量

这是我为 python 所做的,但请注意 python 模式有 python-shell-process-environment 允许我设置 NIX 环境变量。

 '(python-shell-interpreter "/nix/var/nix/profiles/default/bin/nix-shell")
 '(python-shell-interpreter-args
   "-p \"callPackage /Users/dom/Dropbox/Tidy/mrp/dl.nix {}\" -I nixpkgs=/Users/dom/nixpkgs --run python")
 '(python-shell-process-environment
   (quote
    ("NIX_PROFILES=/nix/var/nix/profiles/default /Users/dom/.nix-profile" "NIX_REMOTE=daemon" "NIX_PATH=/nix/var/nix/profiles/per-user/root/channels" "NIX_SSL_CERT_FILE=/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt" "NIX_USER_PROFILE_DIR=/nix/var/nix/profiles/per-user/dom"))))

重复我原来的问题,我可以做些什么来说服 ESS 使用 R 的 nix 版本(和相关包)?

用 M-x shell、运行 你的 nix-shell 命令打开一个常规 shell 缓冲区,然后执行 M-x ess-remote 和 select R.ESS 然后会将此缓冲区识别为其交互式 R 会话。

NB 你需要 运行 R 之前 M-x ess-remote.