使用ESS(Emacs Speaks Statistics)和nix

时间:2018-02-02 08:34:58

标签: emacs ess nix

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

这是我可以通过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有变量

  • inferior-R-program-name
  • inferior-R-args

这是我为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使用Nix版本的R(以及相关的软件包)吗?

1 个答案:

答案 0 :(得分:0)

打开一个带有M-x shell的常规shell缓冲区,在那里运行你的nix-shell命令,然后执行M-x ess-remote并选择R. ESS会将此缓冲区识别为其交互式R会话。

注意你需要在M-x ess-remote之前运行R.